[
  {
    "type": "abstraction",
    "named": true,
    "fields": {
      "branch": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "abstraction_branch",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "abstraction_branch",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      },
      "rest": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern",
            "named": true
          }
        ]
      },
      "typeParameter": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "type_variable_declaration",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "access",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "shorthand_access_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "access_type",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "application",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "argument",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "typeArgument": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "parametric_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "argument",
    "named": true,
    "fields": {
      "placeholder": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "?",
            "named": false
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "spread",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "assignment",
    "named": true,
    "fields": {
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "case",
            "named": true
          },
          {
            "type": "class",
            "named": true
          },
          {
            "type": "enum",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "instance",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "block",
    "named": true,
    "fields": {
      "term": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "case",
            "named": true
          },
          {
            "type": "class",
            "named": true
          },
          {
            "type": "enum",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "instance",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "boolean",
    "named": true,
    "fields": {}
  },
  {
    "type": "case",
    "named": true,
    "fields": {
      "else": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "when": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "when",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "class",
    "named": true,
    "fields": {
      "member": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "class_member",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_declaration",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "class_member",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "conditional_type",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "constraint": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "curried_type",
    "named": true,
    "fields": {
      "from": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "to": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "destructuring_pattern",
    "named": true,
    "fields": {
      "alias": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "list_pattern",
            "named": true
          },
          {
            "type": "struct_pattern",
            "named": true
          },
          {
            "type": "tuple_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "else_if",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "enum",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "enum_value",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "enum_value",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "export",
    "named": true,
    "fields": {
      "declaration": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "assignment",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "exported_import",
    "named": true,
    "fields": {
      "default": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "import": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "import_identifier",
            "named": true
          },
          {
            "type": "import_type",
            "named": true
          }
        ]
      },
      "source": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "raw_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "generator",
    "named": true,
    "fields": {
      "condition": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "group",
    "named": true,
    "fields": {
      "term": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "identifier_pattern",
    "named": true,
    "fields": {
      "default": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "identifier_pattern_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "if",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "else": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "elseIf": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "else_if",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "import",
    "named": true,
    "fields": {
      "default": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "import": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "import_identifier",
            "named": true
          },
          {
            "type": "import_type",
            "named": true
          }
        ]
      },
      "source": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "raw_string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "import_identifier",
    "named": true,
    "fields": {
      "as": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "import_type",
    "named": true,
    "fields": {
      "as": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "infix_application",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "instance",
    "named": true,
    "fields": {
      "assignment": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "assignment",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parametric_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "interpolation",
    "named": true,
    "fields": {
      "term": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "intersection_type",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "keyof",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "left_section",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "list",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "spread",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "list_comprehension",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "generator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "generator",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "list_pattern",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      },
      "rest": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "list_type",
    "named": true,
    "fields": {
      "element": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "map_type",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "property": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_variable_declaration_name",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "member",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "shorthand_member_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "member_pattern",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "shorthand_member_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "member_type",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "shorthand_member_identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "number",
    "named": true,
    "fields": {}
  },
  {
    "type": "parametric_type",
    "named": true,
    "fields": {
      "argument": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "pattern_group",
    "named": true,
    "fields": {
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "pipeline",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "prefix_application",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "program",
    "named": true,
    "fields": {
      "hashBangLine": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "hash_bang_line",
            "named": true
          }
        ]
      },
      "import": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "exported_import",
            "named": true
          },
          {
            "type": "import",
            "named": true
          }
        ]
      },
      "term": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "case",
            "named": true
          },
          {
            "type": "class",
            "named": true
          },
          {
            "type": "enum",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "instance",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "raw_string",
    "named": true,
    "fields": {}
  },
  {
    "type": "refinement_type",
    "named": true,
    "fields": {
      "generator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "predicate": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "application",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "refinement_type_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "regex",
    "named": true,
    "fields": {
      "flags": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "regex_flags",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "regex_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "return",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "right_section",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "shorthand_access_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "shorthand_member",
    "named": true,
    "fields": {}
  },
  {
    "type": "shorthand_member_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "shorthand_member_pattern",
    "named": true,
    "fields": {
      "default": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "spread",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "string",
    "named": true,
    "fields": {
      "escapeSequence": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "escape_sequence",
            "named": true
          }
        ]
      },
      "interpolation": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "interpolation",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "struct",
    "named": true,
    "fields": {
      "member": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "member",
            "named": true
          },
          {
            "type": "shorthand_member",
            "named": true
          },
          {
            "type": "spread",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "struct_pattern",
    "named": true,
    "fields": {
      "member": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "member_pattern",
            "named": true
          },
          {
            "type": "shorthand_member_pattern",
            "named": true
          }
        ]
      },
      "rest": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "struct_type",
    "named": true,
    "fields": {
      "member": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "member_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "subtraction_type",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tagged_pattern",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tagged_type",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tagged_value",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tuple",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "spread",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tuple_pattern",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      },
      "rest": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "tuple_type",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_alias",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_declaration",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_declaration",
    "named": true,
    "fields": {
      "element": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type",
            "named": true
          }
        ]
      },
      "parameter": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "type_variable_declaration",
            "named": true
          }
        ]
      },
      "tag": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier_pattern_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_group",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_hint",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "abstraction",
            "named": true
          },
          {
            "type": "access",
            "named": true
          },
          {
            "type": "application",
            "named": true
          },
          {
            "type": "assignment",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "export",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if",
            "named": true
          },
          {
            "type": "infix_application",
            "named": true
          },
          {
            "type": "left_section",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "list_comprehension",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pipeline",
            "named": true
          },
          {
            "type": "prefix_application",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "right_section",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "struct",
            "named": true
          },
          {
            "type": "tagged_value",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "type_alias",
            "named": true
          },
          {
            "type": "type_hint",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_variable",
    "named": true,
    "fields": {}
  },
  {
    "type": "type_variable_declaration",
    "named": true,
    "fields": {
      "constraint": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_variable_declaration_name",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_variable_declaration_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "typeof",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "union_type",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_type",
            "named": true
          },
          {
            "type": "conditional_type",
            "named": true
          },
          {
            "type": "curried_type",
            "named": true
          },
          {
            "type": "intersection_type",
            "named": true
          },
          {
            "type": "keyof",
            "named": true
          },
          {
            "type": "list_type",
            "named": true
          },
          {
            "type": "map_type",
            "named": true
          },
          {
            "type": "parametric_type",
            "named": true
          },
          {
            "type": "refinement_type",
            "named": true
          },
          {
            "type": "refinement_type_declaration",
            "named": true
          },
          {
            "type": "struct_type",
            "named": true
          },
          {
            "type": "subtraction_type",
            "named": true
          },
          {
            "type": "tagged_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          },
          {
            "type": "type_group",
            "named": true
          },
          {
            "type": "type_variable",
            "named": true
          },
          {
            "type": "typeof",
            "named": true
          },
          {
            "type": "union_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "when",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "destructuring_pattern",
            "named": true
          },
          {
            "type": "identifier_pattern",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "pattern_group",
            "named": true
          },
          {
            "type": "raw_string",
            "named": true
          },
          {
            "type": "regex",
            "named": true
          },
          {
            "type": "tagged_pattern",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": "()",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": ":=",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<:",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "\\",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "`",
    "named": false
  },
  {
    "type": "as",
    "named": false
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "else if",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "export",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "from",
    "named": false
  },
  {
    "type": "hash_bang_line",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "instance",
    "named": false
  },
  {
    "type": "keyof",
    "named": false
  },
  {
    "type": "r/",
    "named": false
  },
  {
    "type": "regex_flags",
    "named": true
  },
  {
    "type": "regex_pattern",
    "named": true
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "then",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "type",
    "named": true
  },
  {
    "type": "type",
    "named": false
  },
  {
    "type": "typeof",
    "named": false
  },
  {
    "type": "when",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "}",
    "named": false
  }
]