#line 1 "-" #line 1 "test/hi_fun2.g" fun compose(fun(W)->S f, fun(S)->U g) -> (fun(W)->U)@ { return fun(W x) f=f,g=g { let r = g(f(x)); return r; }; } fun deref(T* x) -> T { return *x; } fun main() -> int@ { let h = compose<|int**,int*,int|>(deref, deref); let p = new int*(new int(0)); return h(p); }