/* different numbers of parameters and returning a function type */ fun add(int x, int y) -> int@ { return x + y; } fun add(int x) -> (fun(int)->int@)@ { return fun(int y) x: x + y ; } fun main() -> int@ { let w = add(3, 1); let z = add(3)(1); return w - z; }