/* ('a,'b) 'b app (f: ('a) -> 'b, x: 'a) { return f(x); } ('a) 'a identity (x: 'a) { return x; } unit main () { print_int (identity (100)); print_newline (); } */ int add (x:int, y:int) { return (x+y); } ('a) 'a app (f: ('a,'a) -> 'a, x: 'a) { return f(x, x); } unit main () { var: l: int;; l = 0; l = app(add, 1); print_int (l); }