# MappingPackage3(A, B, C)¶

various Currying operations.

*: (B -> C, A -> B) -> A -> C

f*g is the function h such that h x= f(g x).

constantLeft: (B -> C) -> (A, B) -> C

constantLeft(f) is the function g such that g (a, b)= f b.

constantRight: (A -> C) -> (A, B) -> C

constantRight(f) is the function g such that g (a, b)= f a.

curryLeft: ((A, B) -> C, A) -> B -> C

curryLeft(f, a) is the function g such that g b = f(a, b).

curryRight: ((A, B) -> C, B) -> A -> C

curryRight(f, b) is the function g such that g a = f(a, b).

twist: ((A, B) -> C) -> (B, A) -> C

twist(f) is the function g such that g (a, b)= f(b, a).