Constant tree_sitter_ocaml::INTERFACE_NODE_TYPES[][src]

pub const INTERFACE_NODE_TYPES: &str = "[\n  {\n    \"type\": \"_argument\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_extension\",\n        \"named\": true\n      },\n      {\n        \"type\": \"_simple_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"labeled_argument\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_binding_pattern\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_signed_constant\",\n        \"named\": true\n      },\n      {\n        \"type\": \"_value_name\",\n        \"named\": true\n      },\n      {\n        \"type\": \"alias_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"array_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"cons_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"constructor_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"constructor_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"lazy_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"list_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"local_open_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"or_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"package_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"polymorphic_variant_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"range_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"record_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tuple_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"typed_pattern\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_class_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_class_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_application\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_function\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_class_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_open_class_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_class_field\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"class_initializer\",\n        \"named\": true\n      },\n      {\n        \"type\": \"inheritance_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"instance_variable_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"method_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_parameter_constraint\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_class_field_specification\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"inheritance_specification\",\n        \"named\": true\n      },\n      {\n        \"type\": \"instance_variable_specification\",\n        \"named\": true\n      },\n      {\n        \"type\": \"method_specification\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_parameter_constraint\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_class_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_class_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_function_type\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_constant\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"boolean\",\n        \"named\": true\n      },\n      {\n        \"type\": \"character\",\n        \"named\": true\n      },\n      {\n        \"type\": \"number\",\n        \"named\": true\n      },\n      {\n        \"type\": \"quoted_string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"unit\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"application_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"assert_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"cons_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"for_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"fun_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"if_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"infix_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"lazy_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_exception_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_module_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_open_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"match_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"object_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"prefix_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"product_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"set_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"try_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"while_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_extension\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"extension\",\n        \"named\": true\n      },\n      {\n        \"type\": \"quoted_extension\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_item_extension\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"item_extension\",\n        \"named\": true\n      },\n      {\n        \"type\": \"quoted_item_extension\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_module_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_module_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"functor\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_application\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"structure\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_module_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"functor_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_type_constraint\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_type_of\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_type_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_module_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"signature\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_parameter\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"abstract_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parameter\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_pattern\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"alias_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"cons_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"constructor_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"exception_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"lazy_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"or_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"range_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tuple_pattern\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_polymorphic_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_extension\",\n        \"named\": true\n      },\n      {\n        \"type\": \"_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"polymorphic_type\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_sequence_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"sequence_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_signed_constant\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_constant\",\n        \"named\": true\n      },\n      {\n        \"type\": \"signed_number\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_class_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"class_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"instantiated_class\",\n        \"named\": true\n      },\n      {\n        \"type\": \"object_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_class_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"typed_class_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_class_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"class_body_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_type_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"instantiated_class_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_open_class_type\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_constant\",\n        \"named\": true\n      },\n      {\n        \"type\": \"array_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"array_get_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"bigarray_get_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"coercion_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"constructor_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"field_get_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"infix_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"list_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"local_open_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"method_invocation\",\n        \"named\": true\n      },\n      {\n        \"type\": \"new_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"object_copy_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"ocamlyacc_value\",\n        \"named\": true\n      },\n      {\n        \"type\": \"package_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"prefix_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"record_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"string_get_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag\",\n        \"named\": true\n      },\n      {\n        \"type\": \"typed_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"value_path\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_module_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"packed_module\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_module_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"typed_module_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_pattern\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_signed_constant\",\n        \"named\": true\n      },\n      {\n        \"type\": \"_value_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"array_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"constructor_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"list_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"local_open_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"package_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"polymorphic_variant_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"record_pattern\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag\",\n        \"named\": true\n      },\n      {\n        \"type\": \"typed_pattern\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_simple_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"constructed_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"hash_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"object_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"package_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"polymorphic_variant_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_constructor_path\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_variable\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_structure_item\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"class_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"class_type_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"exception_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"external\",\n        \"named\": true\n      },\n      {\n        \"type\": \"floating_attribute\",\n        \"named\": true\n      },\n      {\n        \"type\": \"include_module\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"module_type_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"open_module\",\n        \"named\": true\n      },\n      {\n        \"type\": \"type_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"value_definition\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_tag_spec\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_extension\",\n        \"named\": true\n      },\n      {\n        \"type\": \"_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tag_specification\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_tuple_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_simple_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"tuple_type\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_type\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_tuple_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"aliased_type\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_type\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_value_name\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"parenthesized_operator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"value_name\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_value_pattern\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"parenthesized_operator\",\n        \"named\": true\n      },\n      {\n        \"type\": \"value_pattern\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"abstract_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_constructor\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"alias_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_value_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"aliased_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"application_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_argument\",\n            \"named\": true\n          }\n        ]\n      },\n      \"function\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_simple_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"array_binding_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_get_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"indexing_operator_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"assert_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"attribute\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_payload\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"attribute_id\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"attribute_payload\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_structure_item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"guard\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"toplevel_directive\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"bigarray_get_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"indexing_operator_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"boolean\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"character\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"character_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"character_content\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_application\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_argument\",\n            \"named\": true\n          }\n        ]\n      },\n      \"class\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_simple_class_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"class_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_class_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"class_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_class_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_parameter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_body_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_class_field_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"floating_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_binding\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_function\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_class_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_function_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_class_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_tuple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_initializer\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"class_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_type_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_simple_class_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"class_type_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_type_binding\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"class_type_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"class_type_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"coercion_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"compilation_unit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"external\",\n          \"named\": true\n        },\n        {\n          \"type\": \"floating_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"open_module\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cons_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"cons_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constrain_module\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"extended_module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constrain_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_constructor_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constructed_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constructor_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_simple_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constructor_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constructor_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constructor_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"constructor_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"constructor_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_binding_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constructor_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"directive\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"do_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"else_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"escape_sequence\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"exception_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constructor_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exception_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"expression_item\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extended_module_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"extended_module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extension\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_payload\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"external\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_value_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_polymorphic_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"field_path\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_get_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_binding_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"floating_attribute\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_payload\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"for_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"from\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_value_pattern\",\n            \"named\": true\n          }\n        ]\n      },\n      \"to\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"fun_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_parameter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_case\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"typed_label\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"functor\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_module_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"module_parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"functor_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"guard\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"hash_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_type_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"else_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"then_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"include_module\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"include_module_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"indexing_operator_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"indexing_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"infix_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"infix_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"infix_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"inheritance_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_class_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_value_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"inheritance_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_class_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"instance_variable_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"instance_variable_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"instance_variable_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"instance_variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"instance_variable_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"instance_variable_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"instantiated_class\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"instantiated_class_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_type_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"item_attribute\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_payload\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"item_extension\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_payload\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"labeled_argument\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lazy_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lazy_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_binding_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_parameter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_polymorphic_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_class_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_class_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"value_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_exception_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"exception_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_module_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"module_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_open_class_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_class_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"open_module\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_open_class_type\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_simple_class_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"open_module\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_open_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"open_module\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_binding_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"local_open_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_copy_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"local_open_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_binding_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"match_case\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"refutation_case\",\n            \"named\": true\n          }\n        ]\n      },\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"guard\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"match_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_case\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"method_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"method_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_parameter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_polymorphic_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"method_invocation\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"method_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_polymorphic_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"method_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_polymorphic_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_application\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_simple_module_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"functor\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_module_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"module_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_module_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"module_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_parameter\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_binding\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_parameter\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"module_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"module_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_type_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constrain_module\",\n          \"named\": true\n        },\n        {\n          \"type\": \"constrain_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_type_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_module_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"module_type_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_type_of\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_type_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"extended_module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_type_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"new_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"number\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"object_copy_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"instance_variable_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"object_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_class_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"floating_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"object_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"open_module\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"or_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"packed_module\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_class_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_class_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_module_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_module_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_operator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"and_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"indexing_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"infix_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prefix_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"polymorphic_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"abstract_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"polymorphic_variant_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"type_constructor_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"polymorphic_variant_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_tag_spec\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tag\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"prefix_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"prefix_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"prefix_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"product_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"quoted_extension\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_string_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quoted_item_extension\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_string_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quoted_string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"quoted_string_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quoted_string_content\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"conversion_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pretty_printing_indication\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"range_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_signed_constant\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_binding_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"field_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"refutation_case\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"sequence_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"set_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_get_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bigarray_get_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_get_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"instance_variable_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_get_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"signature\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"class_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"external\",\n          \"named\": true\n        },\n        {\n          \"type\": \"floating_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include_module_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"open_module\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"signed_number\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"string_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string_content\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"conversion_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pretty_printing_indication\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string_get_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_simple_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"indexing_operator_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"structure\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_item_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_structure_item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"toplevel_directive\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tag\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"tag_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_binding_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tag\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tag_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tag\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"then_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"toplevel_directive\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_constant\",\n          \"named\": true\n        },\n        {\n          \"type\": \"directive\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"try_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_case\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_binding_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_tuple_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"..\",\n            \"named\": false\n          },\n          {\n            \"type\": \"record_declaration\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variant_declaration\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_constructor\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_constructor_path\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_variable\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_constructor_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"extended_module_path\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_constructor\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_binding\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_parameter_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_variable\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"typed_class_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_class_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_class_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"typed_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_sequence_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"typed_label\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"typed_module_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_module_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"typed_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_binding_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unit\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"value_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"and_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_binding\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"value_path\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_value_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module_path\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"value_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_extension\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"_value_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item_attribute\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variant_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"constructor_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"while_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_extension\",\n            \"named\": true\n          },\n          {\n            \"type\": \"_sequence_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_id\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"\\t\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\n\",\n    \"named\": false\n  },\n  {\n    \"type\": \" \",\n    \"named\": false\n  },\n  {\n    \"type\": \"!\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\'\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+.\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+=\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-.\",\n    \"named\": false\n  },\n  {\n    \"type\": \"->\",\n    \"named\": false\n  },\n  {\n    \"type\": \".\",\n    \"named\": false\n  },\n  {\n    \"type\": \"..\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \"::\",\n    \"named\": false\n  },\n  {\n    \"type\": \":=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":>\",\n    \"named\": false\n  },\n  {\n    \"type\": \";\",\n    \"named\": false\n  },\n  {\n    \"type\": \";;\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"?\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[%%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[@\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[@@\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[@@@\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"_\",\n    \"named\": false\n  },\n  {\n    \"type\": \"`\",\n    \"named\": false\n  },\n  {\n    \"type\": \"and\",\n    \"named\": false\n  },\n  {\n    \"type\": \"and_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"as\",\n    \"named\": false\n  },\n  {\n    \"type\": \"asr\",\n    \"named\": false\n  },\n  {\n    \"type\": \"assert\",\n    \"named\": false\n  },\n  {\n    \"type\": \"begin\",\n    \"named\": false\n  },\n  {\n    \"type\": \"class\",\n    \"named\": false\n  },\n  {\n    \"type\": \"class_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"class_type_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"constraint\",\n    \"named\": false\n  },\n  {\n    \"type\": \"constructor_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"conversion_specification\",\n    \"named\": true\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"done\",\n    \"named\": false\n  },\n  {\n    \"type\": \"downto\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"end\",\n    \"named\": false\n  },\n  {\n    \"type\": \"exception\",\n    \"named\": false\n  },\n  {\n    \"type\": \"external\",\n    \"named\": false\n  },\n  {\n    \"type\": \"false\",\n    \"named\": false\n  },\n  {\n    \"type\": \"field_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"fun\",\n    \"named\": false\n  },\n  {\n    \"type\": \"function\",\n    \"named\": false\n  },\n  {\n    \"type\": \"functor\",\n    \"named\": false\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"include\",\n    \"named\": false\n  },\n  {\n    \"type\": \"indexing_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"inherit\",\n    \"named\": false\n  },\n  {\n    \"type\": \"initializer\",\n    \"named\": false\n  },\n  {\n    \"type\": \"instance_variable_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"label_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"land\",\n    \"named\": false\n  },\n  {\n    \"type\": \"lazy\",\n    \"named\": false\n  },\n  {\n    \"type\": \"let\",\n    \"named\": false\n  },\n  {\n    \"type\": \"let_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"line_number_directive\",\n    \"named\": true\n  },\n  {\n    \"type\": \"lor\",\n    \"named\": false\n  },\n  {\n    \"type\": \"lsl\",\n    \"named\": false\n  },\n  {\n    \"type\": \"lsr\",\n    \"named\": false\n  },\n  {\n    \"type\": \"lxor\",\n    \"named\": false\n  },\n  {\n    \"type\": \"match\",\n    \"named\": false\n  },\n  {\n    \"type\": \"match_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"method\",\n    \"named\": false\n  },\n  {\n    \"type\": \"method_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"mod\",\n    \"named\": false\n  },\n  {\n    \"type\": \"module\",\n    \"named\": false\n  },\n  {\n    \"type\": \"module_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"module_type_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"mutable\",\n    \"named\": false\n  },\n  {\n    \"type\": \"new\",\n    \"named\": false\n  },\n  {\n    \"type\": \"nonrec\",\n    \"named\": false\n  },\n  {\n    \"type\": \"object\",\n    \"named\": false\n  },\n  {\n    \"type\": \"ocamlyacc_value\",\n    \"named\": true\n  },\n  {\n    \"type\": \"of\",\n    \"named\": false\n  },\n  {\n    \"type\": \"open\",\n    \"named\": false\n  },\n  {\n    \"type\": \"or\",\n    \"named\": false\n  },\n  {\n    \"type\": \"pretty_printing_indication\",\n    \"named\": true\n  },\n  {\n    \"type\": \"private\",\n    \"named\": false\n  },\n  {\n    \"type\": \"rec\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sig\",\n    \"named\": false\n  },\n  {\n    \"type\": \"struct\",\n    \"named\": false\n  },\n  {\n    \"type\": \"then\",\n    \"named\": false\n  },\n  {\n    \"type\": \"to\",\n    \"named\": false\n  },\n  {\n    \"type\": \"true\",\n    \"named\": false\n  },\n  {\n    \"type\": \"try\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type_constructor\",\n    \"named\": true\n  },\n  {\n    \"type\": \"val\",\n    \"named\": false\n  },\n  {\n    \"type\": \"value_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"value_pattern\",\n    \"named\": true\n  },\n  {\n    \"type\": \"virtual\",\n    \"named\": false\n  },\n  {\n    \"type\": \"when\",\n    \"named\": false\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"with\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{%%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"||\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~\",\n    \"named\": false\n  }\n]";