[
  {
    "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": "object_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": "_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": "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": "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": {
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_extension",
            "named": true
          },
          {
            "type": "_simple_type",
            "named": true
          }
        ]
      }
    },
    "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": "_extension",
          "named": true
        },
        {
          "type": "_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
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_extension",
            "named": true
          },
          {
            "type": "_simple_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "hash_operator",
          "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
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "_extension",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "infix_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "infix_operator",
    "named": true,
    "fields": {}
  },
  {
    "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": "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": "and_operator",
          "named": true
        },
        {
          "type": "hash_operator",
          "named": true
        },
        {
          "type": "indexing_operator",
          "named": true
        },
        {
          "type": "infix_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": {
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_extension",
            "named": true
          },
          {
            "type": "_simple_expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "prefix_operator",
          "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": {
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_expression",
            "named": true
          },
          {
            "type": "_extension",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "sign_operator",
          "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": "and_operator",
          "named": true
        },
        {
          "type": "attribute_id",
          "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": "_extension",
          "named": true
        },
        {
          "type": "_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": "\t",
    "named": false
  },
  {
    "type": "\n",
    "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": "and_operator",
    "named": true
  },
  {
    "type": "as",
    "named": false
  },
  {
    "type": "asr",
    "named": false
  },
  {
    "type": "assert",
    "named": false
  },
  {
    "type": "begin",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "class_name",
    "named": true
  },
  {
    "type": "class_type_name",
    "named": true
  },
  {
    "type": "comment",
    "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": "land",
    "named": false
  },
  {
    "type": "lazy",
    "named": false
  },
  {
    "type": "let",
    "named": false
  },
  {
    "type": "let_operator",
    "named": true
  },
  {
    "type": "line_number_directive",
    "named": true
  },
  {
    "type": "lor",
    "named": false
  },
  {
    "type": "lsl",
    "named": false
  },
  {
    "type": "lsr",
    "named": false
  },
  {
    "type": "lxor",
    "named": false
  },
  {
    "type": "match",
    "named": false
  },
  {
    "type": "match_operator",
    "named": true
  },
  {
    "type": "method",
    "named": false
  },
  {
    "type": "method_name",
    "named": true
  },
  {
    "type": "mod",
    "named": false
  },
  {
    "type": "module",
    "named": false
  },
  {
    "type": "module_name",
    "named": true
  },
  {
    "type": "module_type_name",
    "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",
    "named": false
  },
  {
    "type": "prefix_operator",
    "named": true
  },
  {
    "type": "pretty_printing_indication",
    "named": true
  },
  {
    "type": "private",
    "named": false
  },
  {
    "type": "rec",
    "named": false
  },
  {
    "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
  },
  {
    "type": "~",
    "named": false
  }
]