Data.Function.Poly

type family TypeListToArity (xs :: [*]) (r :: *) :: * where ...

type family ArityToTypeList (r :: *) :: [*] where ...

type family Result (f :: *) :: * where ...

type family ArityMinusTypeList (r :: *) (xs :: [*]) :: * where ...

type ArityTypeListIso c l r

type family InjectLast (x :: *) (f :: *) :: * where ...

type family Append (xs :: [*]) (x :: *) :: [*] where ...

type family ExpectArity (xs :: [*]) (f :: *) :: Constraint where ...

type family ExpectLast (x :: *) (f :: *) :: Constraint where ...

type family Head (xs :: [k]) :: k where ...

type family Tail (xs :: [k]) :: [k] where ...

data HList xs

class ConsumeArity xs f result

type family HasResult (f :: *) (r :: *) :: Constraint where ...