define y (S..., (S..., (S... -> T...) -> T...) -> T...): -> f; { f y } f call define fac (Int32, (Int32 -> Int32) -> Int32): -> x, rec; if (x <= 1) { 1 } else { (x - 1) rec call * x } define fib (Int32, (Int32 -> Int32) -> Int32): -> x, rec; if (x <= 2): 1 else: (x - 1) rec call -> a; (x - 2) rec call -> b; a + b 5 \fac y say // 120 10 \fib y say // 55