C
Lib.C : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
Permutes first two arguments to curried function: C f x y equals
f y x.
Failure
C f never fails and C f x never fails, but C f x y fails if
f y x fails.
Example
> map (C cons []) [1,2,3];
val it = [[1], [2], [3]]: int list list