Melange_compiler_libs.Tast_iteratorAllows the implementation of typed tree inspection using open recursion
type iterator = {attribute: iterator => Typedtree.attribute => unit,attributes: iterator => Typedtree.attributes => unit,binding_op: iterator => Typedtree.binding_op => unit,case: 'k. iterator => Typedtree.case('k) => unit,class_declaration: iterator => Typedtree.class_declaration => unit,class_description: iterator => Typedtree.class_description => unit,class_expr: iterator => Typedtree.class_expr => unit,class_field: iterator => Typedtree.class_field => unit,class_signature: iterator => Typedtree.class_signature => unit,class_structure: iterator => Typedtree.class_structure => unit,class_type: iterator => Typedtree.class_type => unit,class_type_declaration: iterator => Typedtree.class_type_declaration => unit,class_type_field: iterator => Typedtree.class_type_field => unit,env: iterator => Env.t => unit,expr: iterator => Typedtree.expression => unit,extension_constructor: iterator => Typedtree.extension_constructor => unit,location: iterator => Location.t => unit,module_binding: iterator => Typedtree.module_binding => unit,module_coercion: iterator => Typedtree.module_coercion => unit,module_declaration: iterator => Typedtree.module_declaration => unit,module_substitution: iterator => Typedtree.module_substitution => unit,module_expr: iterator => Typedtree.module_expr => unit,module_type: iterator => Typedtree.module_type => unit,module_type_declaration: iterator => Typedtree.module_type_declaration => unit,package_type: iterator => Typedtree.package_type => unit,pat: 'k. iterator => Typedtree.general_pattern('k) => unit,row_field: iterator => Typedtree.row_field => unit,object_field: iterator => Typedtree.object_field => unit,open_declaration: iterator => Typedtree.open_declaration => unit,open_description: iterator => Typedtree.open_description => unit,signature: iterator => Typedtree.signature => unit,signature_item: iterator => Typedtree.signature_item => unit,structure: iterator => Typedtree.structure => unit,structure_item: iterator => Typedtree.structure_item => unit,typ: iterator => Typedtree.core_type => unit,type_declaration: iterator => Typedtree.type_declaration => unit,type_declarations: iterator =>
(Asttypes.rec_flag, list(Typedtree.type_declaration)) =>
unit,type_extension: iterator => Typedtree.type_extension => unit,type_exception: iterator => Typedtree.type_exception => unit,type_kind: iterator => Typedtree.type_kind => unit,value_binding: iterator => Typedtree.value_binding => unit,value_bindings: iterator =>
(Asttypes.rec_flag, list(Typedtree.value_binding)) =>
unit,value_description: iterator => Typedtree.value_description => unit,with_constraint: iterator => Typedtree.with_constraint => unit,};let default_iterator: iterator;