type 'a class_info = {- cls_id : Ident.t;
- cls_id_loc : string Asttypes.loc;
- cls_decl : Types.class_declaration;
- cls_ty_id : Ident.t;
- cls_ty_decl : Types.class_type_declaration;
- cls_obj_id : Ident.t;
- cls_obj_abbr : Types.type_declaration;
- cls_abbr : Types.type_declaration;
- cls_arity : int;
- cls_pub_methods : string list;
- cls_info : 'a;
}type class_type_info = {- clsty_ty_id : Ident.t;
- clsty_id_loc : string Asttypes.loc;
- clsty_ty_decl : Types.class_type_declaration;
- clsty_obj_id : Ident.t;
- clsty_obj_abbr : Types.type_declaration;
- clsty_abbr : Types.type_declaration;
- clsty_info : Typedtree.class_type_declaration;
}val class_declarations : 
  Env.t ->
  Parsetree.class_declaration list ->
  Typedtree.class_declaration class_info list * Env.tval class_descriptions : 
  Env.t ->
  Parsetree.class_description list ->
  Typedtree.class_description class_info list * Env.tval class_type_declarations : 
  Env.t ->
  Parsetree.class_description list ->
  class_type_info list * Env.tval approx_class_declarations : 
  Env.t ->
  Parsetree.class_description list ->
  class_type_info list * Env.ttype error = - | Unconsistent_constraint of Errortrace.unification_error
- | Field_type_mismatch of string * string * Errortrace.unification_error
- | Unexpected_field of Types.type_expr * string
- | Structure_expected of Types.class_type
- | Cannot_apply of Types.class_type
- | Apply_wrong_label of Asttypes.arg_label
- | Pattern_type_clash of Types.type_expr
- | Repeated_parameter
- | Unbound_class_2 of Longident.t
- | Unbound_class_type_2 of Longident.t
- | Abbrev_type_clash of Types.type_expr * Types.type_expr * Types.type_expr
- | Constructor_type_mismatch of string * Errortrace.unification_error
- | Virtual_class of kind * string list * string list
- | Undeclared_methods of kind * string list
- | Parameter_arity_mismatch of Longident.t * int * int
- | Parameter_mismatch of Errortrace.unification_error
- | Bad_parameters of Ident.t * Types.type_expr list * Types.type_expr list
- | Bad_class_type_parameters of Ident.t * Types.type_expr list * Types.type_expr list
- | Class_match_failure of Ctype.class_match_failure list
- | Unbound_val of string
- | Unbound_type_var of Format.formatter -> unit * Ctype.closed_class_failure
- | Non_generalizable_class of {- id : Ident.t;
- clty : Types.class_declaration;
- nongen_vars : Types.type_expr list;
 - }
- | Cannot_coerce_self of Types.type_expr
- | Non_collapsable_conjunction of Ident.t * Types.class_declaration * Errortrace.unification_error
- | Self_clash of Errortrace.unification_error
- | Mutability_mismatch of string * Asttypes.mutable_flag
- | No_overriding of string * string
- | Duplicate of string * string
- | Closing_self_type of Types.class_signature
exception Error of Location.t * Env.t * errorexception Error_forward of Location.errorval report_error : Env.t -> Format.formatter -> error -> unitval type_open_descr : 
  (?used_slot:bool ref ->
    Env.t ->
    Parsetree.open_description ->
    Typedtree.open_description * Env.t)
    ref
