fun compose< W, S, U > ((fun(W const&) -> S const&) const& f, (fun(S const&) -> U const&) const& g) -> (fun(W const&) -> U const&) @; fun deref< T > (T* const& x) -> T const&; fun main () -> int @;