[
{
"type": "_type",
"named": true,
"subtypes": [
{
"type": "..",
"named": false
},
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "record_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
},
{
"type": "variant_type",
"named": true
}
]
},
{
"type": "declaration",
"named": true,
"subtypes": [
{
"type": "exception_declaration",
"named": true
},
{
"type": "external_declaration",
"named": true
},
{
"type": "let_declaration",
"named": true
},
{
"type": "module_declaration",
"named": true
},
{
"type": "type_declaration",
"named": true
}
]
},
{
"type": "expression",
"named": true,
"subtypes": [
{
"type": "assert_expression",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "coercion_expression",
"named": true
},
{
"type": "for_expression",
"named": true
},
{
"type": "jsx_element",
"named": true
},
{
"type": "jsx_fragment",
"named": true
},
{
"type": "jsx_self_closing_element",
"named": true
},
{
"type": "mutation_expression",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "while_expression",
"named": true
}
]
},
{
"type": "module_expression",
"named": true,
"subtypes": [
{
"type": "module_primary_expression",
"named": true
},
{
"type": "module_type_constraint",
"named": true
},
{
"type": "module_type_of",
"named": true
}
]
},
{
"type": "module_primary_expression",
"named": true,
"subtypes": [
{
"type": "functor_use",
"named": true
},
{
"type": "module_identifier",
"named": true
},
{
"type": "module_identifier_path",
"named": true
},
{
"type": "module_unpack",
"named": true
},
{
"type": "parenthesized_module_expression",
"named": true
}
]
},
{
"type": "primary_expression",
"named": true,
"subtypes": [
{
"type": "array",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "if_expression",
"named": true
},
{
"type": "jsx_element",
"named": true
},
{
"type": "jsx_self_closing_element",
"named": true
},
{
"type": "lazy_expression",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "object",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pipe_expression",
"named": true
},
{
"type": "polyvar",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "switch_expression",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "value_identifier_path",
"named": true
},
{
"type": "variant",
"named": true
}
]
},
{
"type": "statement",
"named": true,
"subtypes": [
{
"type": "declaration",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "include_statement",
"named": true
},
{
"type": "open_statement",
"named": true
}
]
},
{
"type": "abstract_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "labeled_argument",
"named": true
},
{
"type": "module_expression",
"named": true
},
{
"type": "partial_application_spread",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "uncurry",
"named": true
}
]
}
},
{
"type": "array",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "array_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "spread_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "as_aliasing",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "as_aliasing_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "assert_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "await_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"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
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
}
},
{
"type": "character",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
}
]
}
},
{
"type": "coercion_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": ":>",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "..",
"named": false
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
}
},
{
"type": "constrain_module",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_primary_expression",
"named": true
}
]
}
},
{
"type": "constrain_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "decorator",
"named": true,
"extra": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "decorator_arguments",
"named": true
},
{
"type": "decorator_identifier",
"named": true
}
]
}
},
{
"type": "decorator_arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "type_annotation",
"named": true
}
]
}
},
{
"type": "else_clause",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "block",
"named": true
}
]
}
},
{
"type": "else_if_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "exception_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "nested_variant_identifier",
"named": true
},
{
"type": "variant_identifier",
"named": true
},
{
"type": "variant_parameters",
"named": true
}
]
}
},
{
"type": "exception_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "extension_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "extension_identifier",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "external_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "string",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "field",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
},
{
"type": "expression",
"named": true
},
{
"type": "property_identifier",
"named": true
}
]
}
},
{
"type": "for_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "formal_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parameter",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "function",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"parameter": {
"multiple": false,
"required": false,
"types": [
{
"type": "value_identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "formal_parameters",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_annotation",
"named": true
}
]
}
}
},
{
"type": "function_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
},
{
"type": "function_type_parameters",
"named": true
}
]
}
},
{
"type": "function_type_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "parameter",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
}
]
}
},
{
"type": "functor",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "functor",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "functor_parameters",
"named": true
}
]
},
"return_module_type": {
"multiple": false,
"required": false,
"types": [
{
"type": "module_type_annotation",
"named": true
}
]
}
}
},
{
"type": "functor_parameter",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_identifier",
"named": true
},
{
"type": "module_type_annotation",
"named": true
}
]
}
},
{
"type": "functor_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "functor_parameter",
"named": true
}
]
}
},
{
"type": "functor_use",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "module_primary_expression",
"named": true
}
]
}
},
{
"type": "generic_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_arguments",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
},
{
"type": "guard",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "if_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "else_clause",
"named": true
},
{
"type": "else_if_clause",
"named": true
},
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "include_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "functor",
"named": true
},
{
"type": "module_expression",
"named": true
},
{
"type": "module_type_annotation",
"named": true
}
]
}
},
{
"type": "jsx_attribute",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "jsx_expression",
"named": true
},
{
"type": "primary_expression",
"named": true
},
{
"type": "property_identifier",
"named": true
}
]
}
},
{
"type": "jsx_closing_element",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "jsx_identifier",
"named": true
},
{
"type": "nested_jsx_identifier",
"named": true
}
]
}
}
},
{
"type": "jsx_element",
"named": true,
"fields": {
"close_tag": {
"multiple": false,
"required": true,
"types": [
{
"type": "jsx_closing_element",
"named": true
}
]
},
"open_tag": {
"multiple": false,
"required": true,
"types": [
{
"type": "jsx_opening_element",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "block",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "jsx_element",
"named": true
},
{
"type": "jsx_fragment",
"named": true
},
{
"type": "jsx_self_closing_element",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "spread_element",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "value_identifier_path",
"named": true
}
]
}
},
{
"type": "jsx_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "spread_element",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "jsx_fragment",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "block",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "jsx_element",
"named": true
},
{
"type": "jsx_fragment",
"named": true
},
{
"type": "jsx_self_closing_element",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "spread_element",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "value_identifier_path",
"named": true
}
]
}
},
{
"type": "jsx_identifier",
"named": true,
"fields": {}
},
{
"type": "jsx_opening_element",
"named": true,
"fields": {
"attribute": {
"multiple": true,
"required": false,
"types": [
{
"type": "jsx_attribute",
"named": true
},
{
"type": "jsx_expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "jsx_identifier",
"named": true
},
{
"type": "nested_jsx_identifier",
"named": true
}
]
}
}
},
{
"type": "jsx_self_closing_element",
"named": true,
"fields": {
"attribute": {
"multiple": true,
"required": false,
"types": [
{
"type": "jsx_attribute",
"named": true
},
{
"type": "jsx_expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "jsx_identifier",
"named": true
},
{
"type": "nested_jsx_identifier",
"named": true
}
]
}
}
},
{
"type": "labeled_argument",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": true,
"types": [
{
"type": "value_identifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_annotation",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "labeled_parameter",
"named": true,
"fields": {
"default_value": {
"multiple": true,
"required": false,
"types": [
{
"type": "=",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "as_aliasing",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "lazy_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "lazy_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "let_binding",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"pattern": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_annotation",
"named": true
}
]
}
},
{
"type": "let_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "let_binding",
"named": true
}
]
}
},
{
"type": "list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "spread_element",
"named": true
}
]
}
},
{
"type": "list_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "spread_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "member_expression",
"named": true,
"fields": {
"module": {
"multiple": true,
"required": false,
"types": [
{
"type": ".",
"named": false
},
{
"type": "module_identifier",
"named": true
}
]
},
"property": {
"multiple": false,
"required": true,
"types": [
{
"type": "property_identifier",
"named": true
}
]
},
"record": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
}
},
{
"type": "module_binding",
"named": true,
"fields": {
"definition": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "functor",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "module_identifier",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
},
"signature": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
},
{
"type": "functor",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
}
}
},
{
"type": "module_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_binding",
"named": true
}
]
}
},
{
"type": "module_identifier",
"named": true,
"fields": {}
},
{
"type": "module_identifier_path",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_primary_expression",
"named": true
}
]
}
},
{
"type": "module_pack",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "functor",
"named": true
},
{
"type": "module_expression",
"named": true
},
{
"type": "module_type_annotation",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
},
{
"type": "module_type_annotation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
}
},
{
"type": "module_type_constraint",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "constrain_module",
"named": true
},
{
"type": "constrain_type",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
}
},
{
"type": "module_type_of",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "module_expression",
"named": true
}
]
}
},
{
"type": "module_unpack",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "call_expression",
"named": true
},
{
"type": "extension_expression",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "module_type_annotation",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "value_identifier_path",
"named": true
}
]
}
},
{
"type": "mutation_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "member_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "nested_jsx_identifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "jsx_identifier",
"named": true
},
{
"type": "nested_jsx_identifier",
"named": true
}
]
}
},
{
"type": "nested_variant_identifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_primary_expression",
"named": true
},
{
"type": "variant_identifier",
"named": true
}
]
}
},
{
"type": "object",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "field",
"named": true
}
]
}
},
{
"type": "object_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "field",
"named": true
},
{
"type": "type_spread",
"named": true
}
]
}
},
{
"type": "open_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "module_expression",
"named": true
}
]
}
},
{
"type": "or_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "parameter",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
},
{
"type": "abstract_type",
"named": true
},
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "labeled_parameter",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "uncurry",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "type_annotation",
"named": true
}
]
}
},
{
"type": "parenthesized_module_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_expression",
"named": true
},
{
"type": "module_type_annotation",
"named": true
}
]
}
},
{
"type": "parenthesized_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "partial_application_spread",
"named": true,
"fields": {}
},
{
"type": "pipe_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "primary_expression",
"named": true
}
]
}
},
{
"type": "polymorphic_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract_type",
"named": true
},
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
}
]
}
},
{
"type": "polyvar",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "polyvar_identifier",
"named": true
}
]
}
},
{
"type": "polyvar_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_identifier",
"named": true
},
{
"type": "polyvar_parameters",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
}
]
}
},
{
"type": "polyvar_identifier",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "polyvar_string",
"named": true
}
]
}
},
{
"type": "polyvar_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "polyvar_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
},
{
"type": "polyvar_identifier",
"named": true
}
]
}
},
{
"type": "polyvar_string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "string_fragment",
"named": true
}
]
}
},
{
"type": "polyvar_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "polyvar_declaration",
"named": true
}
]
}
},
{
"type": "polyvar_type_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
},
{
"type": "property_identifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "module_primary_expression",
"named": true
},
{
"type": "string_fragment",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "range_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
}
]
}
},
{
"type": "record",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "property_identifier",
"named": true
},
{
"type": "record_field",
"named": true
},
{
"type": "spread_element",
"named": true
}
]
}
},
{
"type": "record_field",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "property_identifier",
"named": true
}
]
}
},
{
"type": "record_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "value_identifier_path",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "record_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "record_type_field",
"named": true
},
{
"type": "type_spread",
"named": true
}
]
}
},
{
"type": "record_type_field",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "property_identifier",
"named": true
},
{
"type": "type_annotation",
"named": true
}
]
}
},
{
"type": "sequence_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "spread_element",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "spread_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "string_fragment",
"named": true
}
]
}
},
{
"type": "subscript_expression",
"named": true,
"fields": {
"index": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "primary_expression",
"named": true
}
]
}
}
},
{
"type": "switch_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "switch_match",
"named": true
}
]
}
},
{
"type": "switch_match",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "sequence_expression",
"named": true
}
]
},
"pattern": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "guard",
"named": true
}
]
}
},
{
"type": "template_string",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "template_string_content",
"named": true
}
]
}
},
{
"type": "template_string_content",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
},
{
"type": "template_substitution",
"named": true
}
]
}
},
{
"type": "template_substitution",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "ternary_expression",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "try_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "switch_match",
"named": true
}
]
}
},
{
"type": "tuple",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "tuple_item_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_pattern",
"named": true
},
{
"type": "as_aliasing",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "exception_pattern",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "lazy_pattern",
"named": true
},
{
"type": "list_pattern",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or_pattern",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "polyvar_pattern",
"named": true
},
{
"type": "polyvar_type_pattern",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "record_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "template_string",
"named": true
},
{
"type": "true",
"named": true
},
{
"type": "tuple_pattern",
"named": true
},
{
"type": "type_annotation",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "value_identifier",
"named": true
},
{
"type": "variant_pattern",
"named": true
}
]
}
},
{
"type": "tuple_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "tuple_item_pattern",
"named": true
}
]
}
},
{
"type": "tuple_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "type_annotation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
}
]
}
},
{
"type": "type_arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "type_binding",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "_type",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "as_aliasing_type",
"named": true
},
{
"type": "generic_type",
"named": true
},
{
"type": "module_pack",
"named": true
},
{
"type": "object_type",
"named": true
},
{
"type": "polymorphic_type",
"named": true
},
{
"type": "polyvar_type",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_constraint",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
},
{
"type": "type_parameters",
"named": true
},
{
"type": "unit",
"named": true
},
{
"type": "unit_type",
"named": true
}
]
}
},
{
"type": "type_constraint",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "type_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_binding",
"named": true
}
]
}
},
{
"type": "type_identifier",
"named": true,
"fields": {}
},
{
"type": "type_identifier_path",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_primary_expression",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "type_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "type_spread",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "generic_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_identifier_path",
"named": true
}
]
}
},
{
"type": "unary_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "+.",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "-.",
"named": false
}
]
}
}
},
{
"type": "uncurry",
"named": true,
"fields": {}
},
{
"type": "unit",
"named": true,
"fields": {}
},
{
"type": "value_identifier",
"named": true,
"fields": {}
},
{
"type": "value_identifier_path",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "module_primary_expression",
"named": true
},
{
"type": "value_identifier",
"named": true
}
]
}
},
{
"type": "variant",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "nested_variant_identifier",
"named": true
},
{
"type": "variant_identifier",
"named": true
}
]
}
},
{
"type": "variant_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_annotation",
"named": true
},
{
"type": "variant_identifier",
"named": true
},
{
"type": "variant_parameters",
"named": true
}
]
}
},
{
"type": "variant_identifier",
"named": true,
"fields": {}
},
{
"type": "variant_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_type",
"named": true
}
]
}
},
{
"type": "variant_pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "formal_parameters",
"named": true
},
{
"type": "nested_variant_identifier",
"named": true
},
{
"type": "variant_identifier",
"named": true
}
]
}
},
{
"type": "variant_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "variant_declaration",
"named": true
}
]
}
},
{
"type": "while_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"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": ">=",
"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": "as",
"named": false
},
{
"type": "assert",
"named": false
},
{
"type": "async",
"named": false
},
{
"type": "await",
"named": false
},
{
"type": "catch",
"named": false
},
{
"type": "comment",
"named": true,
"extra": true
},
{
"type": "constraint",
"named": false
},
{
"type": "decorator_identifier",
"named": true
},
{
"type": "downto",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "exception",
"named": false
},
{
"type": "export",
"named": false
},
{
"type": "extension_identifier",
"named": true
},
{
"type": "external",
"named": false
},
{
"type": "false",
"named": true
},
{
"type": "for",
"named": false
},
{
"type": "if",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "include",
"named": false
},
{
"type": "lazy",
"named": false
},
{
"type": "let",
"named": false
},
{
"type": "module",
"named": false
},
{
"type": "mutable",
"named": false
},
{
"type": "number",
"named": true
},
{
"type": "of",
"named": false
},
{
"type": "open",
"named": false
},
{
"type": "private",
"named": false
},
{
"type": "rec",
"named": false
},
{
"type": "string_fragment",
"named": true
},
{
"type": "switch",
"named": false
},
{
"type": "to",
"named": false
},
{
"type": "true",
"named": true
},
{
"type": "try",
"named": false
},
{
"type": "type",
"named": false
},
{
"type": "unit_type",
"named": true
},
{
"type": "unpack",
"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
}
]