A class model represents the model of a Ceylon class that you can instantiate and inspect.

A member class is is declared on classes or interfaces.

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

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

    void test(){
        MemberClass<Outer,Outer.Inner,[]> memberClass = `Outer.Inner`;
        Class<Outer.Inner,[]> c = memberClass(Outer("Stef"));
        // This will print: Hello Stef
        print(c().hello);
    }

no type hierarchy

- `MemberClass`
  - `ClassModel`
    - `ClassOrInterface`
      - `Generic`
      - `Model`
        - `Declared`
      - `Type`
  - `Member`
    - `Qualified`
      - `Callable`

no subtypes hierarchy

Attributes
`defaultConstructor` | Source Code `shared formal MemberClassCallableConstructor<Container,Type,Arguments>? defaultConstructor` A function model for this class's initializer or default constructor, or null if this class has constructors but lacks a default constructor. Refines `ClassModel.defaultConstructor`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `ClassModel<Type,Arguments>` `declaration`, `defaultConstructor`
Attributes inherited from: `ClassOrInterface<Type>` `caseValues`, `declaration`, `extendedType`, `satisfiedTypes`
Attributes inherited from: `Declared` `container`, `declaration`
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 Class<Type,Arguments> bind(Anything container)` Type-unsafe container binding, to be used when the container type is unknown until runtime. A null argument is only permitted for `static` members (which have no container instance). In all other cases a non-null container is required. This has the same behaviour as invoking this `Member` directly, but exchanges compile-time type safety with runtime checks. Refines `Qualified.bind`
`getConstructor` | Source Code `shared formal MemberClassCallableConstructor<Container,Type,Arguments>|MemberClassValueConstructor<Container,Type>? getConstructor<Arguments>(String name) given Arguments satisfies Anything[]` The constructor with the given name, or null if this class lacks a constructor of the given name Refines `ClassModel.getConstructor`

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `ClassModel<Type,Arguments>` `getCallableConstructors()`, `getConstructor()`, `getDeclaredCallableConstructors()`, `getDeclaredConstructor()`, `getDeclaredValueConstructors()`, `getValueConstructors()`
Methods inherited from: `ClassOrInterface<Type>` `getAttribute()`, `getAttributes()`, `getClass()`, `getClassOrInterface()`, `getClasses()`, `getDeclaredAttribute()`, `getDeclaredAttributes()`, `getDeclaredClass()`, `getDeclaredClassOrInterface()`, `getDeclaredClasses()`, `getDeclaredInterface()`, `getDeclaredInterfaces()`, `getDeclaredMethod()`, `getDeclaredMethods()`, `getInterface()`, `getInterfaces()`, `getMethod()`, `getMethods()`
Methods inherited from: `Qualified<Kind,Container>` `bind()`
Methods inherited from: `Type<Target>` `exactly()`, `intersection()`, `subtypeOf()`, `supertypeOf()`, `typeOf()`, `union()`