sig
  type iterator = {
    attribute : Ast_iterator.iterator -> Parsetree.attribute -> unit;
    attributes : Ast_iterator.iterator -> Parsetree.attribute list -> unit;
    binding_op : Ast_iterator.iterator -> Parsetree.binding_op -> unit;
    case : Ast_iterator.iterator -> Parsetree.case -> unit;
    cases : Ast_iterator.iterator -> Parsetree.case list -> unit;
    class_declaration :
      Ast_iterator.iterator -> Parsetree.class_declaration -> unit;
    class_description :
      Ast_iterator.iterator -> Parsetree.class_description -> unit;
    class_expr : Ast_iterator.iterator -> Parsetree.class_expr -> unit;
    class_field : Ast_iterator.iterator -> Parsetree.class_field -> unit;
    class_signature :
      Ast_iterator.iterator -> Parsetree.class_signature -> unit;
    class_structure :
      Ast_iterator.iterator -> Parsetree.class_structure -> unit;
    class_type : Ast_iterator.iterator -> Parsetree.class_type -> unit;
    class_type_declaration :
      Ast_iterator.iterator -> Parsetree.class_type_declaration -> unit;
    class_type_field :
      Ast_iterator.iterator -> Parsetree.class_type_field -> unit;
    constructor_declaration :
      Ast_iterator.iterator -> Parsetree.constructor_declaration -> unit;
    expr : Ast_iterator.iterator -> Parsetree.expression -> unit;
    extension : Ast_iterator.iterator -> Parsetree.extension -> unit;
    extension_constructor :
      Ast_iterator.iterator -> Parsetree.extension_constructor -> unit;
    include_declaration :
      Ast_iterator.iterator -> Parsetree.include_declaration -> unit;
    include_description :
      Ast_iterator.iterator -> Parsetree.include_description -> unit;
    label_declaration :
      Ast_iterator.iterator -> Parsetree.label_declaration -> unit;
    location : Ast_iterator.iterator -> Location.t -> unit;
    module_binding :
      Ast_iterator.iterator -> Parsetree.module_binding -> unit;
    module_declaration :
      Ast_iterator.iterator -> Parsetree.module_declaration -> unit;
    module_substitution :
      Ast_iterator.iterator -> Parsetree.module_substitution -> unit;
    module_expr : Ast_iterator.iterator -> Parsetree.module_expr -> unit;
    module_type : Ast_iterator.iterator -> Parsetree.module_type -> unit;
    module_type_declaration :
      Ast_iterator.iterator -> Parsetree.module_type_declaration -> unit;
    open_declaration :
      Ast_iterator.iterator -> Parsetree.open_declaration -> unit;
    open_description :
      Ast_iterator.iterator -> Parsetree.open_description -> unit;
    pat : Ast_iterator.iterator -> Parsetree.pattern -> unit;
    payload : Ast_iterator.iterator -> Parsetree.payload -> unit;
    signature : Ast_iterator.iterator -> Parsetree.signature -> unit;
    signature_item :
      Ast_iterator.iterator -> Parsetree.signature_item -> unit;
    structure : Ast_iterator.iterator -> Parsetree.structure -> unit;
    structure_item :
      Ast_iterator.iterator -> Parsetree.structure_item -> unit;
    typ : Ast_iterator.iterator -> Parsetree.core_type -> unit;
    row_field : Ast_iterator.iterator -> Parsetree.row_field -> unit;
    object_field : Ast_iterator.iterator -> Parsetree.object_field -> unit;
    type_declaration :
      Ast_iterator.iterator -> Parsetree.type_declaration -> unit;
    type_extension :
      Ast_iterator.iterator -> Parsetree.type_extension -> unit;
    type_exception :
      Ast_iterator.iterator -> Parsetree.type_exception -> unit;
    type_kind : Ast_iterator.iterator -> Parsetree.type_kind -> unit;
    value_binding : Ast_iterator.iterator -> Parsetree.value_binding -> unit;
    value_description :
      Ast_iterator.iterator -> Parsetree.value_description -> unit;
    with_constraint :
      Ast_iterator.iterator -> Parsetree.with_constraint -> unit;
  }
  val default_iterator : Ast_iterator.iterator
end