fun apply(fun(U)->U f, T x) -> T { return f(x); } fun id(T x) -> T { return x; } fun main() -> int@ { return apply(id, 3) - 3; }