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