poly-arity-0.0.4.1: Tools for working with functions of undetermined arity

Safe HaskellNone
LanguageHaskell2010

Data.Function.Poly

Documentation

type family TypeListToArity xs r :: * Source

Equations

TypeListToArity [] r = r 
TypeListToArity (x : xs) r = x -> TypeListToArity xs r 

type family ArityMinusTypeList r xs :: * Source

Equations

ArityMinusTypeList r [] = r 
ArityMinusTypeList (x -> r) (x : xs) = ArityMinusTypeList r xs 

type family ExpectArity xs f :: Constraint Source

Equations

ExpectArity [] f = () 
ExpectArity (x : xs) (x -> remainder) = ExpectArity xs remainder 

type family Head xs :: k Source

Equations

Head (x : xs) = x 

type family Tail xs :: [k] Source

Equations

Tail (x : xs) = xs 

class ExpectArity xs f => ConsumeArity xs f result | xs f -> result where Source

Methods

appN :: f -> HList xs -> result Source

Instances

ConsumeArity ([] *) r r Source 
(ConsumeArity xs f r, ExpectArity ((:) * x xs) (x -> f)) => ConsumeArity ((:) * x xs) (x -> f) r Source 

type family HasResult f r :: Constraint Source

Equations

HasResult r r = () 
HasResult (x -> r') r = HasResult r' r