The instance variable and method types from this class type are added into the current class type. The flag mutable indicates whether this instance variable can be physically modified. An instance variable specification will hide any previous specification of an instance variable of the same name. The flag private indicates whether the method can be accessed from outside the class. Several specification for the same method must have compatible types.
Evaluation works as for expression application.
When this function is applied to a value v , this value is matched against the pattern pattern and the result is the result of the evaluation of class-expr in the extended environment. Conversion from functions with default values to functions with patterns only works identically for class functions as for normal functions. The let and let rec constructs bind value names locally, as for the core language expressions. Rather, its components are evaluated each time an object is created. Self can only be used in method and initializers.