id : Int -> Int;
id x = x;

add : Int -> Int -> Int;
add x y = x + y;

double : Int -> Int;
double n = n + n;

apply : (Int -> Int -> Int) -> Int -> Int -> Int;
apply f x = \y:Int. f x y;

main : Int;
main = apply add ((\x:Int. x + 1) 1) (double (id 3));
