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