(def pair (lam (a b f) (f a b)))
(def fst (lam p (p (lam (a b) a))))
(def snd (lam p (p (lam (a b) b))))

(def zero (lam (f s) s))
(def succ (lam (n f s) (f (n f s))))

(def is-zero (lam n
   (n (lam x False) true)))
