type family Flatten (api :: k) :: k where ...
type family Redex a b (c :: k) :: * where ...
type family ReassocBranch (currentAPI :: *) (otherEndpoints :: [*]) where ...
Utilities that we can define on a flat representation
type family Nths (idxs :: [Nat]) api where ...
type family Nth (i :: Nat) api where ...