(* Combinators for the transformation calculus *) let I x = x ;; let K = \x ;; let D x f = ;; let L_a x = <> ;; let L_1 x = <<1:x>> ;; let L_2 x = <<2:x>> ;; let L_3 x = <<3:x>> ;; let E_a a:x = ;; let E_1 1:x = ;; let E_2 2:x = ;; let O = K K ;; let P = K o D ;; let U = P o E_2 ;; let A = I o (U I) ;; let R = P o L_1 ;; let T = R o E_2 ;; let B = R o T o A L_3 ;; let S = E_2 o R o A L_3 o D <> o E_2 ;; let W = D <> ;;