packages feed

alms-0.4.9: examples/ex03-blame-error.alms

(* A Blameworthy Coercion *)

let ap =
  fun f: (int -o int) ->
    ( (fun x: int -> f x) :> int -> int )

let inc2 =
  fun y: int ->
    let g = ap (fun z: int -> z + 1) in
      g (g y)   (* g is used twice here *)

in print (inc2 5)