Data.Function.Poly

type family TypeListToArity xs r :: *

type family ArityToTypeList r :: [*]

type family Result f :: *

type family ArityMinusTypeList r xs :: *

type ArityTypeListIso c l r

type family InjectLast x f :: *

type family Append xs x :: [*]

type family ExpectArity xs f :: Constraint

type family ExpectLast x f :: Constraint

type family Head xs :: k

type family Tail xs :: [k]

class ConsumeArity xs f result

type family HasResult f r :: Constraint