Ast_builder.MakeBuild Ast helpers with the location argument factorized.
module Located : sig ... endinclude sig ... endval loc : Location.tval attribute : 
  name:string Astlib.Location.loc ->
  payload:Astlib.Ast_500.Parsetree.payload ->
  Astlib.Ast_500.Parsetree.attributeval binding_op : 
  op:string Astlib.Location.loc ->
  pat:Astlib.Ast_500.Parsetree.pattern ->
  exp:Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.binding_opval case : 
  lhs:Astlib.Ast_500.Parsetree.pattern ->
  guard:Astlib.Ast_500.Parsetree.expression option ->
  rhs:Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.caseval pcl_constr : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.class_exprval pcl_structure : 
  Astlib.Ast_500.Parsetree.class_structure ->
  Astlib.Ast_500.Parsetree.class_exprval pcl_constraint : 
  Astlib.Ast_500.Parsetree.class_expr ->
  Astlib.Ast_500.Parsetree.class_type ->
  Astlib.Ast_500.Parsetree.class_exprval pcl_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.class_exprval pcf_inherit : 
  Astlib.Ast_500.Asttypes.override_flag ->
  Astlib.Ast_500.Parsetree.class_expr ->
  string Astlib.Location.loc option ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_val : 
  (string Astlib.Location.loc
   * Astlib.Ast_500.Asttypes.mutable_flag
   * Astlib.Ast_500.Parsetree.class_field_kind) ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_method : 
  (string Astlib.Location.loc
   * Astlib.Ast_500.Asttypes.private_flag
   * Astlib.Ast_500.Parsetree.class_field_kind) ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_constraint : 
  (Astlib.Ast_500.Parsetree.core_type * Astlib.Ast_500.Parsetree.core_type) ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_initializer : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_attribute : 
  Astlib.Ast_500.Parsetree.attribute ->
  Astlib.Ast_500.Parsetree.class_fieldval pcf_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.class_fieldval class_infos : 
  virt:Astlib.Ast_500.Asttypes.virtual_flag ->
  params:
    (Astlib.Ast_500.Parsetree.core_type
     * (Astlib.Ast_500.Asttypes.variance * Astlib.Ast_500.Asttypes.injectivity))
      list ->
  name:string Astlib.Location.loc ->
  expr:'a ->
  'a Astlib.Ast_500.Parsetree.class_infosval class_signature : 
  self:Astlib.Ast_500.Parsetree.core_type ->
  fields:Astlib.Ast_500.Parsetree.class_type_field list ->
  Astlib.Ast_500.Parsetree.class_signatureval class_structure : 
  self:Astlib.Ast_500.Parsetree.pattern ->
  fields:Astlib.Ast_500.Parsetree.class_field list ->
  Astlib.Ast_500.Parsetree.class_structureval pcty_constr : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.class_typeval pcty_signature : 
  Astlib.Ast_500.Parsetree.class_signature ->
  Astlib.Ast_500.Parsetree.class_typeval pcty_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.class_typeval pctf_inherit : 
  Astlib.Ast_500.Parsetree.class_type ->
  Astlib.Ast_500.Parsetree.class_type_fieldval pctf_constraint : 
  (Astlib.Ast_500.Parsetree.core_type * Astlib.Ast_500.Parsetree.core_type) ->
  Astlib.Ast_500.Parsetree.class_type_fieldval pctf_attribute : 
  Astlib.Ast_500.Parsetree.attribute ->
  Astlib.Ast_500.Parsetree.class_type_fieldval pctf_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.class_type_fieldval ptyp_any : Astlib.Ast_500.Parsetree.core_typeval ptyp_var : string -> Astlib.Ast_500.Parsetree.core_typeval ptyp_tuple : 
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_constr : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_object : 
  Astlib.Ast_500.Parsetree.object_field list ->
  Astlib.Ast_500.Asttypes.closed_flag ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_class : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_alias : 
  Astlib.Ast_500.Parsetree.core_type ->
  string ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_variant : 
  Astlib.Ast_500.Parsetree.row_field list ->
  Astlib.Ast_500.Asttypes.closed_flag ->
  string list option ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_poly : 
  string Astlib.Location.loc list ->
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_package : 
  (Astlib.Longident.t Astlib.Location.loc
   * (Astlib.Longident.t Astlib.Location.loc
      * Astlib.Ast_500.Parsetree.core_type)
       list) ->
  Astlib.Ast_500.Parsetree.core_typeval ptyp_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.core_typeval pdir_string : string -> Astlib.Ast_500.Parsetree.directive_argumentval pdir_int : 
  string ->
  char option ->
  Astlib.Ast_500.Parsetree.directive_argumentval pdir_ident : 
  Astlib.Longident.t ->
  Astlib.Ast_500.Parsetree.directive_argumentval pdir_bool : bool -> Astlib.Ast_500.Parsetree.directive_argumentval pexp_ident : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expressionval pexp_constant : 
  Astlib.Ast_500.Parsetree.constant ->
  Astlib.Ast_500.Parsetree.expressionval pexp_function : 
  Astlib.Ast_500.Parsetree.case list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_apply : 
  Astlib.Ast_500.Parsetree.expression ->
  (Astlib.Ast_500.Asttypes.arg_label * Astlib.Ast_500.Parsetree.expression)
    list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_match : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.case list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_try : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.case list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_tuple : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_construct : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expression option ->
  Astlib.Ast_500.Parsetree.expressionval pexp_variant : 
  string ->
  Astlib.Ast_500.Parsetree.expression option ->
  Astlib.Ast_500.Parsetree.expressionval pexp_record : 
  (Astlib.Longident.t Astlib.Location.loc * Astlib.Ast_500.Parsetree.expression)
    list ->
  Astlib.Ast_500.Parsetree.expression option ->
  Astlib.Ast_500.Parsetree.expressionval pexp_array : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_ifthenelse : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expression option ->
  Astlib.Ast_500.Parsetree.expressionval pexp_sequence : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_constraint : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.expressionval pexp_coerce : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.core_type option ->
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.expressionval pexp_send : 
  Astlib.Ast_500.Parsetree.expression ->
  string Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expressionval pexp_new : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expressionval pexp_setinstvar : 
  string Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_override : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.expression) list ->
  Astlib.Ast_500.Parsetree.expressionval pexp_letmodule : 
  string option Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.module_expr ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_letexception : 
  Astlib.Ast_500.Parsetree.extension_constructor ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_assert : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_lazy : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_poly : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.core_type option ->
  Astlib.Ast_500.Parsetree.expressionval pexp_object : 
  Astlib.Ast_500.Parsetree.class_structure ->
  Astlib.Ast_500.Parsetree.expressionval pexp_newtype : 
  string Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval pexp_pack : 
  Astlib.Ast_500.Parsetree.module_expr ->
  Astlib.Ast_500.Parsetree.expressionval pexp_letop : 
  Astlib.Ast_500.Parsetree.letop ->
  Astlib.Ast_500.Parsetree.expressionval pexp_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.expressionval pexp_unreachable : Astlib.Ast_500.Parsetree.expressionval extension_constructor : 
  name:string Astlib.Location.loc ->
  kind:Astlib.Ast_500.Parsetree.extension_constructor_kind ->
  Astlib.Ast_500.Parsetree.extension_constructorval include_infos : 'a -> 'a Astlib.Ast_500.Parsetree.include_infosval label_declaration : 
  name:string Astlib.Location.loc ->
  mutable_:Astlib.Ast_500.Asttypes.mutable_flag ->
  type_:Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.label_declarationval letop : 
  let_:Astlib.Ast_500.Parsetree.binding_op ->
  ands:Astlib.Ast_500.Parsetree.binding_op list ->
  body:Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.letopval location : 
  start:Stdlib.Lexing.position ->
  end_:Stdlib.Lexing.position ->
  ghost:bool ->
  Astlib.Location.tval module_binding : 
  name:string option Astlib.Location.loc ->
  expr:Astlib.Ast_500.Parsetree.module_expr ->
  Astlib.Ast_500.Parsetree.module_bindingval module_declaration : 
  name:string option Astlib.Location.loc ->
  type_:Astlib.Ast_500.Parsetree.module_type ->
  Astlib.Ast_500.Parsetree.module_declarationval pmod_ident : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.module_exprval pmod_structure : 
  Astlib.Ast_500.Parsetree.structure_item list ->
  Astlib.Ast_500.Parsetree.module_exprval pmod_constraint : 
  Astlib.Ast_500.Parsetree.module_expr ->
  Astlib.Ast_500.Parsetree.module_type ->
  Astlib.Ast_500.Parsetree.module_exprval pmod_unpack : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.module_exprval pmod_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.module_exprval module_substitution : 
  name:string Astlib.Location.loc ->
  manifest:Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.module_substitutionval pmty_ident : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.module_typeval pmty_signature : 
  Astlib.Ast_500.Parsetree.signature_item list ->
  Astlib.Ast_500.Parsetree.module_typeval pmty_with : 
  Astlib.Ast_500.Parsetree.module_type ->
  Astlib.Ast_500.Parsetree.with_constraint list ->
  Astlib.Ast_500.Parsetree.module_typeval pmty_typeof : 
  Astlib.Ast_500.Parsetree.module_expr ->
  Astlib.Ast_500.Parsetree.module_typeval pmty_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.module_typeval pmty_alias : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.module_typeval module_type_declaration : 
  name:string Astlib.Location.loc ->
  type_:Astlib.Ast_500.Parsetree.module_type option ->
  Astlib.Ast_500.Parsetree.module_type_declarationval otag : 
  string Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.object_fieldval oinherit : 
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.object_fieldval open_infos : 
  expr:'a ->
  override:Astlib.Ast_500.Asttypes.override_flag ->
  'a Astlib.Ast_500.Parsetree.open_infosval ppat_any : Astlib.Ast_500.Parsetree.patternval ppat_var : string Astlib.Location.loc -> Astlib.Ast_500.Parsetree.patternval ppat_alias : 
  Astlib.Ast_500.Parsetree.pattern ->
  string Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.patternval ppat_constant : 
  Astlib.Ast_500.Parsetree.constant ->
  Astlib.Ast_500.Parsetree.patternval ppat_interval : 
  Astlib.Ast_500.Parsetree.constant ->
  Astlib.Ast_500.Parsetree.constant ->
  Astlib.Ast_500.Parsetree.patternval ppat_tuple : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.patternval ppat_variant : 
  string ->
  Astlib.Ast_500.Parsetree.pattern option ->
  Astlib.Ast_500.Parsetree.patternval ppat_record : 
  (Astlib.Longident.t Astlib.Location.loc * Astlib.Ast_500.Parsetree.pattern)
    list ->
  Astlib.Ast_500.Asttypes.closed_flag ->
  Astlib.Ast_500.Parsetree.patternval ppat_array : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.patternval ppat_constraint : 
  Astlib.Ast_500.Parsetree.pattern ->
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.patternval ppat_type : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.patternval ppat_lazy : 
  Astlib.Ast_500.Parsetree.pattern ->
  Astlib.Ast_500.Parsetree.patternval ppat_unpack : 
  string option Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.patternval ppat_exception : 
  Astlib.Ast_500.Parsetree.pattern ->
  Astlib.Ast_500.Parsetree.patternval ppat_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.patternval position : 
  fname:string ->
  lnum:int ->
  bol:int ->
  cnum:int ->
  Stdlib.Lexing.positionval rtag : 
  string Astlib.Location.loc ->
  bool ->
  Astlib.Ast_500.Parsetree.core_type list ->
  Astlib.Ast_500.Parsetree.row_fieldval rinherit : 
  Astlib.Ast_500.Parsetree.core_type ->
  Astlib.Ast_500.Parsetree.row_fieldval psig_value : 
  Astlib.Ast_500.Parsetree.value_description ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_type : 
  Astlib.Ast_500.Asttypes.rec_flag ->
  Astlib.Ast_500.Parsetree.type_declaration list ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_typesubst : 
  Astlib.Ast_500.Parsetree.type_declaration list ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_typext : 
  Astlib.Ast_500.Parsetree.type_extension ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_exception : 
  Astlib.Ast_500.Parsetree.type_exception ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_module : 
  Astlib.Ast_500.Parsetree.module_declaration ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_modsubst : 
  Astlib.Ast_500.Parsetree.module_substitution ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_recmodule : 
  Astlib.Ast_500.Parsetree.module_declaration list ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_modtype : 
  Astlib.Ast_500.Parsetree.module_type_declaration ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_modtypesubst : 
  Astlib.Ast_500.Parsetree.module_type_declaration ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_class_type : 
  Astlib.Ast_500.Parsetree.class_type Astlib.Ast_500.Parsetree.class_infos list ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_attribute : 
  Astlib.Ast_500.Parsetree.attribute ->
  Astlib.Ast_500.Parsetree.signature_itemval psig_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.attribute list ->
  Astlib.Ast_500.Parsetree.signature_itemval pstr_eval : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.attribute list ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_value : 
  Astlib.Ast_500.Asttypes.rec_flag ->
  Astlib.Ast_500.Parsetree.value_binding list ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_primitive : 
  Astlib.Ast_500.Parsetree.value_description ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_type : 
  Astlib.Ast_500.Asttypes.rec_flag ->
  Astlib.Ast_500.Parsetree.type_declaration list ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_typext : 
  Astlib.Ast_500.Parsetree.type_extension ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_exception : 
  Astlib.Ast_500.Parsetree.type_exception ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_module : 
  Astlib.Ast_500.Parsetree.module_binding ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_recmodule : 
  Astlib.Ast_500.Parsetree.module_binding list ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_modtype : 
  Astlib.Ast_500.Parsetree.module_type_declaration ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_class_type : 
  Astlib.Ast_500.Parsetree.class_type Astlib.Ast_500.Parsetree.class_infos list ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_attribute : 
  Astlib.Ast_500.Parsetree.attribute ->
  Astlib.Ast_500.Parsetree.structure_itemval pstr_extension : 
  (string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) ->
  Astlib.Ast_500.Parsetree.attribute list ->
  Astlib.Ast_500.Parsetree.structure_itemval toplevel_directive : 
  name:string Astlib.Location.loc ->
  arg:Astlib.Ast_500.Parsetree.directive_argument option ->
  Astlib.Ast_500.Parsetree.toplevel_directiveval type_declaration : 
  name:string Astlib.Location.loc ->
  params:
    (Astlib.Ast_500.Parsetree.core_type
     * (Astlib.Ast_500.Asttypes.variance * Astlib.Ast_500.Asttypes.injectivity))
      list ->
  cstrs:
    (Astlib.Ast_500.Parsetree.core_type
     * Astlib.Ast_500.Parsetree.core_type
     * Astlib.Location.t)
      list ->
  kind:Astlib.Ast_500.Parsetree.type_kind ->
  private_:Astlib.Ast_500.Asttypes.private_flag ->
  manifest:Astlib.Ast_500.Parsetree.core_type option ->
  Astlib.Ast_500.Parsetree.type_declarationval type_exception : 
  Astlib.Ast_500.Parsetree.extension_constructor ->
  Astlib.Ast_500.Parsetree.type_exceptionval type_extension : 
  path:Astlib.Longident.t Astlib.Location.loc ->
  params:
    (Astlib.Ast_500.Parsetree.core_type
     * (Astlib.Ast_500.Asttypes.variance * Astlib.Ast_500.Asttypes.injectivity))
      list ->
  constructors:Astlib.Ast_500.Parsetree.extension_constructor list ->
  private_:Astlib.Ast_500.Asttypes.private_flag ->
  Astlib.Ast_500.Parsetree.type_extensionval value_binding : 
  pat:Astlib.Ast_500.Parsetree.pattern ->
  expr:Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.value_bindingval value_description : 
  name:string Astlib.Location.loc ->
  type_:Astlib.Ast_500.Parsetree.core_type ->
  prim:string list ->
  Astlib.Ast_500.Parsetree.value_descriptionval eint : int -> Astlib.Ast_500.Parsetree.expressionval echar : char -> Astlib.Ast_500.Parsetree.expressionval estring : string -> Astlib.Ast_500.Parsetree.expressionval efloat : string -> Astlib.Ast_500.Parsetree.expressionval eint32 : int32 -> Astlib.Ast_500.Parsetree.expressionval eint64 : int64 -> Astlib.Ast_500.Parsetree.expressionval enativeint : nativeint -> Astlib.Ast_500.Parsetree.expressionval ebool : bool -> Astlib.Ast_500.Parsetree.expressionval pint : int -> Astlib.Ast_500.Parsetree.patternval pchar : char -> Astlib.Ast_500.Parsetree.patternval pstring : string -> Astlib.Ast_500.Parsetree.patternval pfloat : string -> Astlib.Ast_500.Parsetree.patternval pint32 : int32 -> Astlib.Ast_500.Parsetree.patternval pint64 : int64 -> Astlib.Ast_500.Parsetree.patternval pnativeint : nativeint -> Astlib.Ast_500.Parsetree.patternval pbool : bool -> Astlib.Ast_500.Parsetree.patternval eunit : Astlib.Ast_500.Parsetree.expressionval punit : Astlib.Ast_500.Parsetree.patternval evar : string -> Astlib.Ast_500.Parsetree.expressionevar id produces a Pexp_ident _ expression, it parses its input so you can pass any dot-separated identifier, for instance: evar ~loc "Foo.bar".
val pvar : string -> Astlib.Ast_500.Parsetree.patternval eapply : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionSame as pexp_apply but without labels
val eabstract : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval esequence : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionval ppat_tuple_opt : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.pattern optionval pexp_tuple_opt : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expression optionval pconstruct : 
  Astlib.Ast_500.Parsetree.constructor_declaration ->
  Astlib.Ast_500.Parsetree.pattern option ->
  Astlib.Ast_500.Parsetree.patternval econstruct : 
  Astlib.Ast_500.Parsetree.constructor_declaration ->
  Astlib.Ast_500.Parsetree.expression option ->
  Astlib.Ast_500.Parsetree.expressionval elist_tail : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionelist_tail ~loc [expr1; expr2; expr3] expr_tail produces the expression expr1::expr2::expr3::expr_tail.
val elist : 
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionelist ~loc [expr1; expr2; expr3] produces the list litteral expression [expr1; expr2; expr3].
val plist_tail : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.pattern ->
  Astlib.Ast_500.Parsetree.patternplist_tail ~loc [pat1; pat2; pat3] pat_tail produces the pattern pat1::pat2::pat3::pat_tail.
val plist : 
  Astlib.Ast_500.Parsetree.pattern list ->
  Astlib.Ast_500.Parsetree.patternplist ~loc [pat1; pat2; pat3] produces the list pattern [pat1; pat2; pat3].
val pstr_value_list : 
  loc:Location.t ->
  Ppxlib_ast.Asttypes.rec_flag ->
  Astlib.Ast_500.Parsetree.value_binding list ->
  Astlib.Ast_500.Parsetree.structure_item listpstr_value_list ~loc rf vbs = pstr_value ~loc rf vbs if vbs <> [], [] otherwise.
val nonrec_type_declaration : 
  name:string Loc.t ->
  params:
    (Astlib.Ast_500.Parsetree.core_type * Ppxlib_ast.Asttypes.variance) list ->
  cstrs:
    (Astlib.Ast_500.Parsetree.core_type
     * Astlib.Ast_500.Parsetree.core_type
     * Location.t)
      list ->
  kind:Astlib.Ast_500.Parsetree.type_kind ->
  private_:Ppxlib_ast.Asttypes.private_flag ->
  manifest:Astlib.Ast_500.Parsetree.core_type option ->
  Astlib.Ast_500.Parsetree.type_declarationval unapplied_type_constr_conv : 
  Longident.t Loc.t ->
  f:(string -> string) ->
  Astlib.Ast_500.Parsetree.expressionunapplied_type_constr_conv is the standard way to map identifiers to conversion fonctions, for preprocessor that creates values that follow the structure of types. More precisely, path_conv path (sprintf "sexp_of_%s") is:
type_constr_conv also applies it to a list of expression, which both prevents the compiler from allocating useless closures, and almost always what is needed, since type constructors are always applied.val type_constr_conv : 
  Longident.t Loc.t ->
  f:(string -> string) ->
  Astlib.Ast_500.Parsetree.expression list ->
  Astlib.Ast_500.Parsetree.expressionval eta_reduce : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expression optionTries to simplify fun v1 v2 .. -> f v1 v2 .. into f. Only works when f is a path, not an arbitrary expression as that would change the meaning of the code. This can be used either for cleaning up the generated code, or to reduce allocation if f is a local variable (the compiler won't optimize the allocation of the closure).
Eta-reduction can change the types/behavior in some corner cases that are unlikely to show up in generated code:
f has optional arguments, eta-expanding f can drop themf does side effects before receiving all its arguments, and if the eta-expansion is partially applied, eta-reducing could change behavior.eta_reduce_if_possible_and_nonrec is meant for the case where the resulting expression is going to be bound in a potentially recursive let-binding, where we have to keep the eta-expansion when rec_flag is Recursive to avoid a compile error.
val eta_reduce_if_possible : 
  Astlib.Ast_500.Parsetree.expression ->
  Astlib.Ast_500.Parsetree.expressionval eta_reduce_if_possible_and_nonrec : 
  Astlib.Ast_500.Parsetree.expression ->
  rec_flag:Astlib.Ast_500.Asttypes.rec_flag ->
  Astlib.Ast_500.Parsetree.expressionmodule Latest : sig ... endThis module contains updated versions of node constructors that were kept stable when the node changed. For every function in this module, there's an equally-named function outside this module. The function outside this module will stay stable, whereas the function inside this module will adapt potential upcoming new compiler features. Only use a function in this module, if the equally-named one outside this module is missing a feature you need.
val ppat_construct : 
  Astlib.Longident.t Astlib.Location.loc ->
  Astlib.Ast_500.Parsetree.pattern option ->
  Astlib.Ast_500.Parsetree.patternval constructor_declaration : 
  name:string Astlib.Location.loc ->
  args:Astlib.Ast_500.Parsetree.constructor_arguments ->
  res:Astlib.Ast_500.Parsetree.core_type option ->
  Astlib.Ast_500.Parsetree.constructor_declaration