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