A function model represents the model of a Ceylon function that you can invoke and inspect.

A function is a toplevel binding, declared on a package.

This is a `FunctionModel` that you can also invoke:

    shared String foo(String name) => "Hello "+name;

    void test(){
        Function<String,[String]> f = `foo`;
        // This will print: Hello Stef
        print(f("Stef"));
    }

no type hierarchy

- `Function`
  - `Applicable`
  - `Callable`
  - `FunctionModel`
    - `Generic`
    - `Model`

no subtypes hierarchy

Inherited Attributes
Attributes inherited from: `Object` `Object.hash`, `Object.string`
Attributes inherited from: `FunctionModel<Type,Arguments>` `FunctionModel.parameterTypes`, `FunctionModel.type`
Attributes inherited from: `Generic` `Generic.typeArguments`
Attributes inherited from: `Model` `Model.container`, `Model.declaration`

Inherited Methods
Methods inherited from: `Object` `Object.equals()`
Methods inherited from: `Applicable<Type>` `Applicable.apply()`, `Applicable.namedApply()`