sig
  type lid = Longident.t Ast_402.Asttypes.loc
  type str = string Ast_402.Asttypes.loc
  type loc = Location.t
  type attrs = Ast_402.Parsetree.attribute list
  val default_loc : Ast_402.??.loc Pervasives.ref
  val with_default_loc : Ast_402.??.loc -> (unit -> 'a) -> 'a
  module Typ :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.core_type_desc -> Ast_402.Parsetree.core_type
      val attr :
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.core_type
      val any :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs -> unit -> Ast_402.Parsetree.core_type
      val var :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs -> string -> Ast_402.Parsetree.core_type
      val arrow :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.core_type
      val tuple :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.core_type list -> Ast_402.Parsetree.core_type
      val constr :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.core_type list -> Ast_402.Parsetree.core_type
      val object_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        (string * Ast_402.Parsetree.attributes * Ast_402.Parsetree.core_type)
        list -> Ast_402.Asttypes.closed_flag -> Ast_402.Parsetree.core_type
      val class_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.core_type list -> Ast_402.Parsetree.core_type
      val alias :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.core_type -> string -> Ast_402.Parsetree.core_type
      val variant :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.row_field list ->
        Ast_402.Asttypes.closed_flag ->
        Ast_402.Asttypes.label list option -> Ast_402.Parsetree.core_type
      val poly :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        string list ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.core_type
      val package :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        (Ast_402.??.lid * Ast_402.Parsetree.core_type) list ->
        Ast_402.Parsetree.core_type
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.core_type
      val force_poly :
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.core_type
    end
  module Pat :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern_desc -> Ast_402.Parsetree.pattern
      val attr :
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.pattern
      val any :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs -> unit -> Ast_402.Parsetree.pattern
      val var :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str -> Ast_402.Parsetree.pattern
      val alias :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern ->
        Ast_402.??.str -> Ast_402.Parsetree.pattern
      val constant :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.constant -> Ast_402.Parsetree.pattern
      val interval :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.constant ->
        Ast_402.Asttypes.constant -> Ast_402.Parsetree.pattern
      val tuple :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern list -> Ast_402.Parsetree.pattern
      val construct :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.pattern option -> Ast_402.Parsetree.pattern
      val variant :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.pattern option -> Ast_402.Parsetree.pattern
      val record :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        (Ast_402.??.lid * Ast_402.Parsetree.pattern) list ->
        Ast_402.Asttypes.closed_flag -> Ast_402.Parsetree.pattern
      val array :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern list -> Ast_402.Parsetree.pattern
      val or_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.pattern -> Ast_402.Parsetree.pattern
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.pattern
      val type_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.pattern
      val lazy_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern -> Ast_402.Parsetree.pattern
      val unpack :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str -> Ast_402.Parsetree.pattern
      val exception_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern -> Ast_402.Parsetree.pattern
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.pattern
    end
  module Exp :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression_desc -> Ast_402.Parsetree.expression
      val attr :
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.expression
      val ident :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.expression
      val constant :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.constant -> Ast_402.Parsetree.expression
      val let_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.rec_flag ->
        Ast_402.Parsetree.value_binding list ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val fun_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.expression option ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val function_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.case list -> Ast_402.Parsetree.expression
      val apply :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        (Ast_402.Asttypes.label * Ast_402.Parsetree.expression) list ->
        Ast_402.Parsetree.expression
      val match_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.case list -> Ast_402.Parsetree.expression
      val try_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.case list -> Ast_402.Parsetree.expression
      val tuple :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression list -> Ast_402.Parsetree.expression
      val construct :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.expression option -> Ast_402.Parsetree.expression
      val variant :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.expression option -> Ast_402.Parsetree.expression
      val record :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        (Ast_402.??.lid * Ast_402.Parsetree.expression) list ->
        Ast_402.Parsetree.expression option -> Ast_402.Parsetree.expression
      val field :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.??.lid -> Ast_402.Parsetree.expression
      val setfield :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val array :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression list -> Ast_402.Parsetree.expression
      val ifthenelse :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression option -> Ast_402.Parsetree.expression
      val sequence :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val while_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val for_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression ->
        Ast_402.Asttypes.direction_flag ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val coerce :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.core_type option ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.expression
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.expression
      val send :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        string -> Ast_402.Parsetree.expression
      val new_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.expression
      val setinstvar :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val override :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        (Ast_402.??.str * Ast_402.Parsetree.expression) list ->
        Ast_402.Parsetree.expression
      val letmodule :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Parsetree.module_expr ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val assert_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val lazy_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val poly :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.core_type option -> Ast_402.Parsetree.expression
      val object_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_structure -> Ast_402.Parsetree.expression
      val newtype :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        string ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val pack :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.expression
      val open_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.override_flag ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.expression
      val case :
        Ast_402.Parsetree.pattern ->
        ?guard:Ast_402.Parsetree.expression ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.case
    end
  module Val :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?prim:string list ->
        Ast_402.??.str ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.value_description
    end
  module Type :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        ?params:(Ast_402.Parsetree.core_type * Ast_402.Asttypes.variance)
                list ->
        ?cstrs:(Ast_402.Parsetree.core_type * Ast_402.Parsetree.core_type *
                Ast_402.??.loc)
               list ->
        ?kind:Ast_402.Parsetree.type_kind ->
        ?priv:Ast_402.Asttypes.private_flag ->
        ?manifest:Ast_402.Parsetree.core_type ->
        Ast_402.??.str -> Ast_402.Parsetree.type_declaration
      val constructor :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?info:Ast_402.Docstrings.info ->
        ?args:Ast_402.Parsetree.core_type list ->
        ?res:Ast_402.Parsetree.core_type ->
        Ast_402.??.str -> Ast_402.Parsetree.constructor_declaration
      val field :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?info:Ast_402.Docstrings.info ->
        ?mut:Ast_402.Asttypes.mutable_flag ->
        Ast_402.??.str ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.label_declaration
    end
  module Te :
    sig
      val mk :
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?params:(Ast_402.Parsetree.core_type * Ast_402.Asttypes.variance)
                list ->
        ?priv:Ast_402.Asttypes.private_flag ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.extension_constructor list ->
        Ast_402.Parsetree.type_extension
      val constructor :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?info:Ast_402.Docstrings.info ->
        Ast_402.??.str ->
        Ast_402.Parsetree.extension_constructor_kind ->
        Ast_402.Parsetree.extension_constructor
      val decl :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?info:Ast_402.Docstrings.info ->
        ?args:Ast_402.Parsetree.core_type list ->
        ?res:Ast_402.Parsetree.core_type ->
        Ast_402.??.str -> Ast_402.Parsetree.extension_constructor
      val rebind :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?info:Ast_402.Docstrings.info ->
        Ast_402.??.str ->
        Ast_402.??.lid -> Ast_402.Parsetree.extension_constructor
    end
  module Mty :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_type_desc -> Ast_402.Parsetree.module_type
      val attr :
        Ast_402.Parsetree.module_type ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.module_type
      val ident :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.module_type
      val alias :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.module_type
      val signature :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.signature -> Ast_402.Parsetree.module_type
      val functor_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Parsetree.module_type option ->
        Ast_402.Parsetree.module_type -> Ast_402.Parsetree.module_type
      val with_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_type ->
        Ast_402.Parsetree.with_constraint list ->
        Ast_402.Parsetree.module_type
      val typeof_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.module_type
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.module_type
    end
  module Mod :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_expr_desc -> Ast_402.Parsetree.module_expr
      val attr :
        Ast_402.Parsetree.module_expr ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.module_expr
      val ident :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid -> Ast_402.Parsetree.module_expr
      val structure :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.structure -> Ast_402.Parsetree.module_expr
      val functor_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Parsetree.module_type option ->
        Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.module_expr
      val apply :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_expr ->
        Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.module_expr
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.module_expr ->
        Ast_402.Parsetree.module_type -> Ast_402.Parsetree.module_expr
      val unpack :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.module_expr
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.module_expr
    end
  module Sig :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.signature_item_desc ->
        Ast_402.Parsetree.signature_item
      val value :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.value_description ->
        Ast_402.Parsetree.signature_item
      val type_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.type_declaration list ->
        Ast_402.Parsetree.signature_item
      val type_extension :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.type_extension -> Ast_402.Parsetree.signature_item
      val exception_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.extension_constructor ->
        Ast_402.Parsetree.signature_item
      val module_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_declaration ->
        Ast_402.Parsetree.signature_item
      val rec_module :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_declaration list ->
        Ast_402.Parsetree.signature_item
      val modtype :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_type_declaration ->
        Ast_402.Parsetree.signature_item
      val open_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.open_description ->
        Ast_402.Parsetree.signature_item
      val include_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.include_description ->
        Ast_402.Parsetree.signature_item
      val class_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.class_description list ->
        Ast_402.Parsetree.signature_item
      val class_type :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.class_type_declaration list ->
        Ast_402.Parsetree.signature_item
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.signature_item
      val attribute :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.signature_item
      val text :
        Ast_402.Docstrings.text -> Ast_402.Parsetree.signature_item list
    end
  module Str :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.structure_item_desc ->
        Ast_402.Parsetree.structure_item
      val eval :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.Parsetree.attributes ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.structure_item
      val value :
        ?loc:Ast_402.??.loc ->
        Ast_402.Asttypes.rec_flag ->
        Ast_402.Parsetree.value_binding list ->
        Ast_402.Parsetree.structure_item
      val primitive :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.value_description ->
        Ast_402.Parsetree.structure_item
      val type_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.type_declaration list ->
        Ast_402.Parsetree.structure_item
      val type_extension :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.type_extension -> Ast_402.Parsetree.structure_item
      val exception_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.extension_constructor ->
        Ast_402.Parsetree.structure_item
      val module_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_binding -> Ast_402.Parsetree.structure_item
      val rec_module :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_binding list ->
        Ast_402.Parsetree.structure_item
      val modtype :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.module_type_declaration ->
        Ast_402.Parsetree.structure_item
      val open_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.open_description ->
        Ast_402.Parsetree.structure_item
      val class_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.class_declaration list ->
        Ast_402.Parsetree.structure_item
      val class_type :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.class_type_declaration list ->
        Ast_402.Parsetree.structure_item
      val include_ :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.include_declaration ->
        Ast_402.Parsetree.structure_item
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.structure_item
      val attribute :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.structure_item
      val text :
        Ast_402.Docstrings.text -> Ast_402.Parsetree.structure_item list
    end
  module Md :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        Ast_402.??.str ->
        Ast_402.Parsetree.module_type -> Ast_402.Parsetree.module_declaration
    end
  module Mtd :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        ?typ:Ast_402.Parsetree.module_type ->
        Ast_402.??.str -> Ast_402.Parsetree.module_type_declaration
    end
  module Mb :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        Ast_402.??.str ->
        Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.module_binding
    end
  module Opn :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?override:Ast_402.Asttypes.override_flag ->
        Ast_402.??.lid -> Ast_402.Parsetree.open_description
    end
  module Incl :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        '-> 'Ast_402.Parsetree.include_infos
    end
  module Vb :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.value_binding
    end
  module Cty :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_type_desc -> Ast_402.Parsetree.class_type
      val attr :
        Ast_402.Parsetree.class_type ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_type
      val constr :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.core_type list -> Ast_402.Parsetree.class_type
      val signature :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_signature -> Ast_402.Parsetree.class_type
      val arrow :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.class_type -> Ast_402.Parsetree.class_type
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.class_type
    end
  module Ctf :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        Ast_402.Parsetree.class_type_field_desc ->
        Ast_402.Parsetree.class_type_field
      val attr :
        Ast_402.Parsetree.class_type_field ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_type_field
      val inherit_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_type -> Ast_402.Parsetree.class_type_field
      val val_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        string ->
        Ast_402.Asttypes.mutable_flag ->
        Ast_402.Asttypes.virtual_flag ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.class_type_field
      val method_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        string ->
        Ast_402.Asttypes.private_flag ->
        Ast_402.Asttypes.virtual_flag ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.class_type_field
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.class_type_field
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.class_type_field
      val attribute :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_type_field
      val text :
        Ast_402.Docstrings.text -> Ast_402.Parsetree.class_type_field list
    end
  module Cl :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_expr_desc -> Ast_402.Parsetree.class_expr
      val attr :
        Ast_402.Parsetree.class_expr ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_expr
      val constr :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.lid ->
        Ast_402.Parsetree.core_type list -> Ast_402.Parsetree.class_expr
      val structure :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_structure -> Ast_402.Parsetree.class_expr
      val fun_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.label ->
        Ast_402.Parsetree.expression option ->
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.class_expr -> Ast_402.Parsetree.class_expr
      val apply :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_expr ->
        (Ast_402.Asttypes.label * Ast_402.Parsetree.expression) list ->
        Ast_402.Parsetree.class_expr
      val let_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.rec_flag ->
        Ast_402.Parsetree.value_binding list ->
        Ast_402.Parsetree.class_expr -> Ast_402.Parsetree.class_expr
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.class_expr ->
        Ast_402.Parsetree.class_type -> Ast_402.Parsetree.class_expr
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.class_expr
    end
  module Cf :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        Ast_402.Parsetree.class_field_desc -> Ast_402.Parsetree.class_field
      val attr :
        Ast_402.Parsetree.class_field ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_field
      val inherit_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Asttypes.override_flag ->
        Ast_402.Parsetree.class_expr ->
        string option -> Ast_402.Parsetree.class_field
      val val_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Asttypes.mutable_flag ->
        Ast_402.Parsetree.class_field_kind -> Ast_402.Parsetree.class_field
      val method_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.??.str ->
        Ast_402.Asttypes.private_flag ->
        Ast_402.Parsetree.class_field_kind -> Ast_402.Parsetree.class_field
      val constraint_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.class_field
      val initializer_ :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.class_field
      val extension :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        Ast_402.Parsetree.extension -> Ast_402.Parsetree.class_field
      val attribute :
        ?loc:Ast_402.??.loc ->
        Ast_402.Parsetree.attribute -> Ast_402.Parsetree.class_field
      val text :
        Ast_402.Docstrings.text -> Ast_402.Parsetree.class_field list
      val virtual_ :
        Ast_402.Parsetree.core_type -> Ast_402.Parsetree.class_field_kind
      val concrete :
        Ast_402.Asttypes.override_flag ->
        Ast_402.Parsetree.expression -> Ast_402.Parsetree.class_field_kind
    end
  module Ci :
    sig
      val mk :
        ?loc:Ast_402.??.loc ->
        ?attrs:Ast_402.??.attrs ->
        ?docs:Ast_402.Docstrings.docs ->
        ?text:Ast_402.Docstrings.text ->
        ?virt:Ast_402.Asttypes.virtual_flag ->
        ?params:(Ast_402.Parsetree.core_type * Ast_402.Asttypes.variance)
                list ->
        Ast_402.??.str -> '-> 'Ast_402.Parsetree.class_infos
    end
  module Csig :
    sig
      val mk :
        Ast_402.Parsetree.core_type ->
        Ast_402.Parsetree.class_type_field list ->
        Ast_402.Parsetree.class_signature
    end
  module Cstr :
    sig
      val mk :
        Ast_402.Parsetree.pattern ->
        Ast_402.Parsetree.class_field list ->
        Ast_402.Parsetree.class_structure
    end
end