4 ; class List extends Mondrian
5 ; class Nil extends List
6 ; class Cons extends List
14 ; Cons{ a :: Mondrian; a = head; as :: List; as = tail } ->
15 new Cons{ head = f a; tail = map f as }
18 ; class Boolean extends Mondrian
19 ; class True extends Boolean
20 ; class False extends Boolean
22 ; cond = \b -> \t -> \e ->
28 ; fac = \n -> cond (n == 0) 1 (n * (fac (n - 1)))
36 ; S :: (a -> b -> c) -> (a -> b) -> (a -> c)
37 ; S = \f -> \g -> \x -> f x (g x)
39 ; Compose :: (b -> c) -> (a -> b) -> (a -> c)
40 ; Compose = \f -> \g -> \x -> f (g x)
42 ; Twice :: (a -> a) -> (a -> a)
43 ; Twice = \f -> Compose f f