(* Polymorphic version: A Type-Correct, Blame-Free Program *) let ap = fun `a `b (f: `a -o `b) (x: `a) -> f x let inc = fun y: int -> ap (fun z:int -> z + 1) y in print (inc 5)