packages feed

alms-0.4.9: examples/ex01-poly.alms

(* 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)