1 :: List a = Nil | Cons a (List a);
2 :: Tuple a b = Tuple a b;
3 :: Either a b = Left a | Right b;
4 :: Maybe a = Nothing | Just a;
5 :: St s a = St (s -> Tuple a s);
9 //Reverse function application
14 .. ifxr 9 f g x = f (g x);
16 //Arithmetic operators
24 on f g a b = f (g a) (g b);
26 //Conditional operators
29 fac i = if (i == 0) 1 $ i * fac (i - 1);
32 even i = if (i == 0) True (odd (i - 1));
33 odd i = if (i == 0) False (even (i - 1));
35 //uncurry f t = f (fst t) (snd t);
37 return a = St $ Tuple a;
38 //>>= ifxr 0 ma atmb = \s. uncurry atmb (ma s);