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

A method is a member function: it is declared on classes or interfaces.

This is both a `FunctionModel` and a `Member`: you can invoke it with an instance value to bind it to that instance and obtain a `Function`:

    class Outer(){
        shared String foo(String name) => "Hello "+name;
    }

    void test(){
        Method<Outer,String,[String]> method = `Outer.foo`;
        // Bind it to an instance value
        Function<String,[String]> f = method(Outer());
        // This will print: Hello Stef
        print(f("Stef"));
    }

no type hierarchy

- `Method`
  - `FunctionModel`
    - `Functional`
    - `Generic`
    - `Model`
      - `Declared`
  - `Member`
    - `Qualified`
      - `Callable`

no subtypes hierarchy

Attributes
`declaration` | Source Code `shared formal FunctionDeclaration declaration` This function's declaration. Refines `FunctionModel.declaration` ultimately refines `Declared.declaration`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `Declared` `container`, `declaration`
Attributes inherited from: `FunctionModel<Type,Arguments>` `declaration`, `type`
Attributes inherited from: `Functional` `parameterTypes`
Attributes inherited from: `Generic` `typeArgumentList`, `typeArgumentWithVarianceList`, `typeArgumentWithVariances`, `typeArguments`
Attributes inherited from: `Member<Container,Kind>` `declaringType`
Attributes inherited from: `Model` `container`, `declaration`

Methods
`bind` | Source Code `shared formal Function<Type,Arguments> bind(Object container)` Type-unsafe container binding, to be used when the container type is unknown until runtime. This has the same behaviour as invoking this `Member` directly, but exchanges compile-time type safety with runtime checks. Refines `Qualified.bind`

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `Qualified<Kind,Container>` `bind()`