clr-typed-0.2.0: A strongly typed Haskell interface to the CLR type system

Safe HaskellSafe
LanguageHaskell2010

Clr.Curry

Documentation

type family CurryT x r where ... Source #

Equations

CurryT () r = CurryT' 1 () r 
CurryT x r = CurryT' (TupleSize x) x r 

type family CurryT' (n :: Nat) x r :: Type where ... Source #

Equations

CurryT' 4 (a, b, c, d) r = a -> b -> c -> d -> r 
CurryT' 3 (a, b, c) r = a -> b -> c -> r 
CurryT' 2 (a, b) r = a -> b -> r 
CurryT' 1 a r = a -> r 
CurryT' 0 a r = r 

class Curry n a b | n b -> a, n a -> b where Source #

Minimal complete definition

curryN, uncurryN

Methods

curryN :: a -> b Source #

uncurryN :: b -> a Source #

Instances

Curry 1 (a -> r) (a -> r) Source # 

Methods

curryN :: (a -> r) -> a -> r Source #

uncurryN :: (a -> r) -> a -> r Source #

Curry 2 ((a, b) -> r) (a -> b -> r) Source # 

Methods

curryN :: ((a, b) -> r) -> a -> b -> r Source #

uncurryN :: (a -> b -> r) -> (a, b) -> r Source #

Curry 3 ((a, b, c) -> r) (a -> b -> c -> r) Source # 

Methods

curryN :: ((a, b, c) -> r) -> a -> b -> c -> r Source #

uncurryN :: (a -> b -> c -> r) -> (a, b, c) -> r Source #

Curry 4 ((a, b, c, d) -> r) (a -> b -> c -> d -> r) Source # 

Methods

curryN :: ((a, b, c, d) -> r) -> a -> b -> c -> d -> r Source #

uncurryN :: (a -> b -> c -> d -> r) -> (a, b, c, d) -> r Source #