use "basic_models.g"; fun apply1< T > where { Regular< T > } ((fun(T const&, int const&) -> T @) const& f, T const& x, int const& y) -> T @; fun apply2< T > ((fun(T const&, int const&) -> int @) const& f, T const& x, int const& y) -> int @; fun apply3 ((fun(int const&, int const&) -> int @) const& f, int const& x, int const& y) -> int @; fun add (int const& x, int const& y) -> int @; fun main () -> int @;