Module Melange_compiler_libs.Tast_iterator

Allows the implementation of typed tree inspection using open recursion

type iterator = {
  1. attribute: iterator => Typedtree.attribute => unit,
  2. attributes: iterator => Typedtree.attributes => unit,
  3. binding_op: iterator => Typedtree.binding_op => unit,
  4. case: 'k. iterator => Typedtree.case('k) => unit,
  5. class_declaration: iterator => Typedtree.class_declaration => unit,
  6. class_description: iterator => Typedtree.class_description => unit,
  7. class_expr: iterator => Typedtree.class_expr => unit,
  8. class_field: iterator => Typedtree.class_field => unit,
  9. class_signature: iterator => Typedtree.class_signature => unit,
  10. class_structure: iterator => Typedtree.class_structure => unit,
  11. class_type: iterator => Typedtree.class_type => unit,
  12. class_type_declaration: iterator => Typedtree.class_type_declaration => unit,
  13. class_type_field: iterator => Typedtree.class_type_field => unit,
  14. env: iterator => Env.t => unit,
  15. expr: iterator => Typedtree.expression => unit,
  16. extension_constructor: iterator => Typedtree.extension_constructor => unit,
  17. location: iterator => Location.t => unit,
  18. module_binding: iterator => Typedtree.module_binding => unit,
  19. module_coercion: iterator => Typedtree.module_coercion => unit,
  20. module_declaration: iterator => Typedtree.module_declaration => unit,
  21. module_substitution: iterator => Typedtree.module_substitution => unit,
  22. module_expr: iterator => Typedtree.module_expr => unit,
  23. module_type: iterator => Typedtree.module_type => unit,
  24. module_type_declaration: iterator => Typedtree.module_type_declaration => unit,
  25. package_type: iterator => Typedtree.package_type => unit,
  26. pat: 'k. iterator => Typedtree.general_pattern('k) => unit,
  27. row_field: iterator => Typedtree.row_field => unit,
  28. object_field: iterator => Typedtree.object_field => unit,
  29. open_declaration: iterator => Typedtree.open_declaration => unit,
  30. open_description: iterator => Typedtree.open_description => unit,
  31. signature: iterator => Typedtree.signature => unit,
  32. signature_item: iterator => Typedtree.signature_item => unit,
  33. structure: iterator => Typedtree.structure => unit,
  34. structure_item: iterator => Typedtree.structure_item => unit,
  35. typ: iterator => Typedtree.core_type => unit,
  36. type_declaration: iterator => Typedtree.type_declaration => unit,
  37. type_declarations: iterator => (Asttypes.rec_flag, list(Typedtree.type_declaration)) => unit,
  38. type_extension: iterator => Typedtree.type_extension => unit,
  39. type_exception: iterator => Typedtree.type_exception => unit,
  40. type_kind: iterator => Typedtree.type_kind => unit,
  41. value_binding: iterator => Typedtree.value_binding => unit,
  42. value_bindings: iterator => (Asttypes.rec_flag, list(Typedtree.value_binding)) => unit,
  43. value_description: iterator => Typedtree.value_description => unit,
  44. with_constraint: iterator => Typedtree.with_constraint => unit,
};
let default_iterator: iterator;