Functions are among the basic blocks of Morfa programs. As in C++ or D, functions may be declared both on the top-level of a Morfa module and in classes or structures. Functions may also be nested inside other functions.
Morfa supports functional programming: functional values may be constructed at runtime, stored in variables, passed as arguments and returned from functions.
Morfa supports user-defined conversions between types, defined using
special functions named