{
  "name": "tony",
  "word": "_identifier_without_operators",
  "rules": {
    "program": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "hashBangLine",
              "content": {
                "type": "SYMBOL",
                "name": "hash_bang_line"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "FIELD",
            "name": "import",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "import"
                },
                {
                  "type": "SYMBOL",
                  "name": "exported_import"
                }
              ]
            }
          }
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "FIELD",
            "name": "term",
            "content": {
              "type": "SYMBOL",
              "name": "_term"
            }
          }
        }
      ]
    },
    "hash_bang_line": {
      "type": "PATTERN",
      "value": "#!.*"
    },
    "comment": {
      "type": "TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "#"
          },
          {
            "type": "PATTERN",
            "value": ".*"
          }
        ]
      }
    },
    "import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "import"
        },
        {
          "type": "SYMBOL",
          "name": "_import_body"
        }
      ]
    },
    "exported_import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "export"
        },
        {
          "type": "SYMBOL",
          "name": "_import_body"
        }
      ]
    },
    "_import_body": {
      "type": "PREC_LEFT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "default",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "identifier"
                  },
                  "named": true,
                  "value": "identifier_pattern_name"
                }
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "FIELD",
                            "name": "default",
                            "content": {
                              "type": "ALIAS",
                              "content": {
                                "type": "SYMBOL",
                                "name": "identifier"
                              },
                              "named": true,
                              "value": "identifier_pattern_name"
                            }
                          },
                          {
                            "type": "STRING",
                            "value": ","
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": "{"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "import",
                        "content": {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "import_identifier"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "import_type"
                            }
                          ]
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "import",
                              "content": {
                                "type": "CHOICE",
                                "members": [
                                  {
                                    "type": "SYMBOL",
                                    "name": "import_identifier"
                                  },
                                  {
                                    "type": "SYMBOL",
                                    "name": "import_type"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": "}"
                  }
                ]
              }
            ]
          },
          {
            "type": "STRING",
            "value": "from"
          },
          {
            "type": "FIELD",
            "name": "source",
            "content": {
              "type": "SYMBOL",
              "name": "raw_string"
            }
          }
        ]
      }
    },
    "import_identifier": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "name",
                  "content": {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "identifier"
                    },
                    "named": true,
                    "value": "identifier_pattern_name"
                  }
                },
                {
                  "type": "STRING",
                  "value": "as"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "as",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "identifier_pattern_name"
          }
        }
      ]
    },
    "import_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "name",
                  "content": {
                    "type": "SYMBOL",
                    "name": "type"
                  }
                },
                {
                  "type": "STRING",
                  "value": "as"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "as",
          "content": {
            "type": "SYMBOL",
            "name": "type"
          }
        }
      ]
    },
    "_term": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_simple_term"
            },
            {
              "type": "SYMBOL",
              "name": "_newline"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_compound_term"
        }
      ]
    },
    "_simple_term": {
      "type": "PREC_LEFT",
      "value": 17,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "simple_abstraction"
            },
            "named": true,
            "value": "abstraction"
          },
          {
            "type": "SYMBOL",
            "name": "application"
          },
          {
            "type": "SYMBOL",
            "name": "prefix_application"
          },
          {
            "type": "SYMBOL",
            "name": "infix_application"
          },
          {
            "type": "SYMBOL",
            "name": "_section"
          },
          {
            "type": "SYMBOL",
            "name": "pipeline"
          },
          {
            "type": "SYMBOL",
            "name": "access"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "simple_assignment"
            },
            "named": true,
            "value": "assignment"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "simple_export"
            },
            "named": true,
            "value": "export"
          },
          {
            "type": "SYMBOL",
            "name": "return"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "simple_if"
            },
            "named": true,
            "value": "if"
          },
          {
            "type": "SYMBOL",
            "name": "struct"
          },
          {
            "type": "SYMBOL",
            "name": "tuple"
          },
          {
            "type": "SYMBOL",
            "name": "list"
          },
          {
            "type": "SYMBOL",
            "name": "list_comprehension"
          },
          {
            "type": "SYMBOL",
            "name": "tagged_value"
          },
          {
            "type": "SYMBOL",
            "name": "type_alias"
          },
          {
            "type": "SYMBOL",
            "name": "type_hint"
          },
          {
            "type": "SYMBOL",
            "name": "identifier"
          },
          {
            "type": "SYMBOL",
            "name": "_literal"
          },
          {
            "type": "SYMBOL",
            "name": "group"
          }
        ]
      }
    },
    "_compound_term": {
      "type": "PREC_LEFT",
      "value": 17,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_abstraction"
            },
            "named": true,
            "value": "abstraction"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_assignment"
            },
            "named": true,
            "value": "assignment"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_export"
            },
            "named": true,
            "value": "export"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_if"
            },
            "named": true,
            "value": "if"
          },
          {
            "type": "SYMBOL",
            "name": "case"
          },
          {
            "type": "SYMBOL",
            "name": "enum"
          },
          {
            "type": "SYMBOL",
            "name": "class"
          },
          {
            "type": "SYMBOL",
            "name": "instance"
          }
        ]
      }
    },
    "_simple_block": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "FIELD",
        "name": "term",
        "content": {
          "type": "SYMBOL",
          "name": "_simple_term"
        }
      }
    },
    "_compound_block": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "term",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "SYMBOL",
                "name": "_newline"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_newline"
              },
              {
                "type": "SYMBOL",
                "name": "_indent"
              },
              {
                "type": "REPEAT1",
                "content": {
                  "type": "FIELD",
                  "name": "term",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_term"
                  }
                }
              },
              {
                "type": "SYMBOL",
                "name": "_dedent"
              }
            ]
          }
        ]
      }
    },
    "simple_export": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "export"
        },
        {
          "type": "FIELD",
          "name": "declaration",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "simple_assignment"
            },
            "named": true,
            "value": "assignment"
          }
        }
      ]
    },
    "compound_export": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "export"
        },
        {
          "type": "FIELD",
          "name": "declaration",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_assignment"
            },
            "named": true,
            "value": "assignment"
          }
        }
      ]
    },
    "simple_assignment": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "pattern",
            "content": {
              "type": "SYMBOL",
              "name": "_assignable_pattern"
            }
          },
          {
            "type": "STRING",
            "value": ":="
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          }
        ]
      }
    },
    "compound_assignment": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "pattern",
            "content": {
              "type": "SYMBOL",
              "name": "_assignable_pattern"
            }
          },
          {
            "type": "STRING",
            "value": ":="
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "value",
                "content": {
                  "type": "SYMBOL",
                  "name": "_compound_term"
                }
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_indent"
                  },
                  {
                    "type": "FIELD",
                    "name": "value",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_compound_term"
                    }
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_dedent"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "enum": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "enum"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "type"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_newline"
            },
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT1",
              "content": {
                "type": "FIELD",
                "name": "value",
                "content": {
                  "type": "SYMBOL",
                  "name": "enum_value"
                }
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "enum_value": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "identifier_pattern_name"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "FIELD",
                  "name": "value",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_literal"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "class": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "class"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "type_declaration"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_newline"
            },
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT1",
              "content": {
                "type": "FIELD",
                "name": "member",
                "content": {
                  "type": "SYMBOL",
                  "name": "class_member"
                }
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "class_member": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "identifier_pattern_name"
          }
        },
        {
          "type": "STRING",
          "value": "::"
        },
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        }
      ]
    },
    "instance": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "instance"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "parametric_type"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_newline"
            },
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT1",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "assignment",
                        "content": {
                          "type": "ALIAS",
                          "content": {
                            "type": "SYMBOL",
                            "name": "simple_assignment"
                          },
                          "named": true,
                          "value": "assignment"
                        }
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_newline"
                      }
                    ]
                  },
                  {
                    "type": "FIELD",
                    "name": "assignment",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "compound_assignment"
                      },
                      "named": true,
                      "value": "assignment"
                    }
                  }
                ]
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "argument": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "FIELD",
            "name": "placeholder",
            "content": {
              "type": "STRING",
              "value": "?"
            }
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_element"
            }
          }
        ]
      }
    },
    "simple_abstraction": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "branch",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "simple_abstraction_branch"
              },
              "named": true,
              "value": "abstraction_branch"
            }
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ","
                },
                {
                  "type": "FIELD",
                  "name": "branch",
                  "content": {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "simple_abstraction_branch"
                    },
                    "named": true,
                    "value": "abstraction_branch"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "simple_abstraction_branch": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "typeParameter",
                        "content": {
                          "type": "SYMBOL",
                          "name": "type_variable_declaration"
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "typeParameter",
                              "content": {
                                "type": "SYMBOL",
                                "name": "type_variable_declaration"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "()"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "("
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "STRING",
                                "value": "..."
                              },
                              {
                                "type": "FIELD",
                                "name": "rest",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier_pattern"
                                }
                              }
                            ]
                          },
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "FIELD",
                                    "name": "element",
                                    "content": {
                                      "type": "SYMBOL",
                                      "name": "_pattern"
                                    }
                                  },
                                  {
                                    "type": "REPEAT",
                                    "content": {
                                      "type": "SEQ",
                                      "members": [
                                        {
                                          "type": "STRING",
                                          "value": ","
                                        },
                                        {
                                          "type": "FIELD",
                                          "name": "element",
                                          "content": {
                                            "type": "SYMBOL",
                                            "name": "_pattern"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "CHOICE",
                                "members": [
                                  {
                                    "type": "SEQ",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": ","
                                      },
                                      {
                                        "type": "STRING",
                                        "value": "..."
                                      },
                                      {
                                        "type": "FIELD",
                                        "name": "rest",
                                        "content": {
                                          "type": "SYMBOL",
                                          "name": "identifier_pattern"
                                        }
                                      }
                                    ]
                                  },
                                  {
                                    "type": "BLANK"
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ")"
                  }
                ]
              }
            ]
          },
          {
            "type": "STRING",
            "value": "=>"
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_simple_block"
              },
              "named": true,
              "value": "block"
            }
          }
        ]
      }
    },
    "compound_abstraction": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "REPEAT1",
        "content": {
          "type": "FIELD",
          "name": "branch",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "compound_abstraction_branch"
            },
            "named": true,
            "value": "abstraction_branch"
          }
        }
      }
    },
    "compound_abstraction_branch": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "typeParameter",
                        "content": {
                          "type": "SYMBOL",
                          "name": "type_variable_declaration"
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "typeParameter",
                              "content": {
                                "type": "SYMBOL",
                                "name": "type_variable_declaration"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "()"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "("
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "STRING",
                                "value": "..."
                              },
                              {
                                "type": "FIELD",
                                "name": "rest",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier_pattern"
                                }
                              }
                            ]
                          },
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "FIELD",
                                    "name": "element",
                                    "content": {
                                      "type": "SYMBOL",
                                      "name": "_pattern"
                                    }
                                  },
                                  {
                                    "type": "REPEAT",
                                    "content": {
                                      "type": "SEQ",
                                      "members": [
                                        {
                                          "type": "STRING",
                                          "value": ","
                                        },
                                        {
                                          "type": "FIELD",
                                          "name": "element",
                                          "content": {
                                            "type": "SYMBOL",
                                            "name": "_pattern"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "CHOICE",
                                "members": [
                                  {
                                    "type": "SEQ",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": ","
                                      },
                                      {
                                        "type": "STRING",
                                        "value": "..."
                                      },
                                      {
                                        "type": "FIELD",
                                        "name": "rest",
                                        "content": {
                                          "type": "SYMBOL",
                                          "name": "identifier_pattern"
                                        }
                                      }
                                    ]
                                  },
                                  {
                                    "type": "BLANK"
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ")"
                  }
                ]
              }
            ]
          },
          {
            "type": "STRING",
            "value": "=>"
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_compound_block"
              },
              "named": true,
              "value": "block"
            }
          }
        ]
      }
    },
    "application": {
      "type": "PREC",
      "value": 16,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "typeArgument",
                        "content": {
                          "type": "SYMBOL",
                          "name": "parametric_type"
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "typeArgument",
                              "content": {
                                "type": "SYMBOL",
                                "name": "parametric_type"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "()"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "("
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "FIELD",
                            "name": "element",
                            "content": {
                              "type": "SYMBOL",
                              "name": "argument"
                            }
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "STRING",
                                  "value": ","
                                },
                                {
                                  "type": "FIELD",
                                  "name": "element",
                                  "content": {
                                    "type": "SYMBOL",
                                    "name": "argument"
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ")"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "prefix_application": {
      "type": "PREC_RIGHT",
      "value": 14,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_operator"
              },
              "named": true,
              "value": "identifier"
            }
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          }
        ]
      }
    },
    "infix_application": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 13,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 12,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "^"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 11,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "*"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 11,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "/"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 10,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "+"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 10,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "-"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 9,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "%"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<="
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">="
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 7,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "=="
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 7,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!="
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "&&"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "||"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "==>"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 3,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<=>"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 2,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_operator"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "STRING",
                "value": "`"
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_identifier_without_operators"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "STRING",
                "value": "`"
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              }
            ]
          }
        }
      ]
    },
    "_section": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "left_section"
        },
        {
          "type": "SYMBOL",
          "name": "right_section"
        }
      ]
    },
    "left_section": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_section_identifier"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "right_section": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_section_identifier"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "list_comprehension": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_block"
            },
            "named": true,
            "value": "block"
          }
        },
        {
          "type": "STRING",
          "value": "|"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "generator",
              "content": {
                "type": "SYMBOL",
                "name": "generator"
              }
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "FIELD",
                    "name": "generator",
                    "content": {
                      "type": "SYMBOL",
                      "name": "generator"
                    }
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "generator": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "identifier_pattern_name"
          }
        },
        {
          "type": "STRING",
          "value": "in"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "if"
                },
                {
                  "type": "FIELD",
                  "name": "condition",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_simple_term"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "pipeline": {
      "type": "PREC_LEFT",
      "value": 18,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "STRING",
            "value": "."
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          }
        ]
      }
    },
    "access": {
      "type": "PREC_LEFT",
      "value": 19,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "["
                  },
                  {
                    "type": "FIELD",
                    "name": "value",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_simple_term"
                    }
                  },
                  {
                    "type": "STRING",
                    "value": "]"
                  }
                ]
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "->"
                  },
                  {
                    "type": "FIELD",
                    "name": "value",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "identifier"
                      },
                      "named": true,
                      "value": "shorthand_access_identifier"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "return": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "return"
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          }
        ]
      }
    },
    "simple_if": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "if"
          },
          {
            "type": "FIELD",
            "name": "condition",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "STRING",
            "value": "then"
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_simple_block"
              },
              "named": true,
              "value": "block"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "else"
                  },
                  {
                    "type": "FIELD",
                    "name": "else",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "_simple_block"
                      },
                      "named": true,
                      "value": "block"
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "compound_if": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "if"
          },
          {
            "type": "FIELD",
            "name": "condition",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "STRING",
            "value": "then"
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_compound_block"
              },
              "named": true,
              "value": "block"
            }
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "FIELD",
              "name": "elseIf",
              "content": {
                "type": "SYMBOL",
                "name": "else_if"
              }
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "else"
                  },
                  {
                    "type": "FIELD",
                    "name": "else",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "_compound_block"
                      },
                      "named": true,
                      "value": "block"
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "else_if": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "else if"
        },
        {
          "type": "FIELD",
          "name": "condition",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "STRING",
          "value": "then"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_compound_block"
            },
            "named": true,
            "value": "block"
          }
        }
      ]
    },
    "case": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "case"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "FIELD",
            "name": "when",
            "content": {
              "type": "SYMBOL",
              "name": "when"
            }
          }
        },
        {
          "type": "STRING",
          "value": "else"
        },
        {
          "type": "FIELD",
          "name": "else",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_compound_block"
            },
            "named": true,
            "value": "block"
          }
        }
      ]
    },
    "when": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "when"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "pattern",
              "content": {
                "type": "SYMBOL",
                "name": "_pattern"
              }
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "FIELD",
                    "name": "pattern",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_pattern"
                    }
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": "then"
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_compound_block"
            },
            "named": true,
            "value": "block"
          }
        }
      ]
    },
    "struct": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "{"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "FIELD",
                    "name": "member",
                    "content": {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "member"
                        },
                        {
                          "type": "ALIAS",
                          "content": {
                            "type": "SYMBOL",
                            "name": "identifier"
                          },
                          "named": true,
                          "value": "shorthand_member"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "spread"
                        }
                      ]
                    }
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ","
                        },
                        {
                          "type": "FIELD",
                          "name": "member",
                          "content": {
                            "type": "CHOICE",
                            "members": [
                              {
                                "type": "SYMBOL",
                                "name": "member"
                              },
                              {
                                "type": "ALIAS",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier"
                                },
                                "named": true,
                                "value": "shorthand_member"
                              },
                              {
                                "type": "SYMBOL",
                                "name": "spread"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "}"
          }
        ]
      }
    },
    "member": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "["
                },
                {
                  "type": "FIELD",
                  "name": "key",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_simple_term"
                  }
                },
                {
                  "type": "STRING",
                  "value": "]"
                }
              ]
            },
            {
              "type": "FIELD",
              "name": "key",
              "content": {
                "type": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "identifier"
                },
                "named": true,
                "value": "shorthand_member_identifier"
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        }
      ]
    },
    "tuple": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "()"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "("
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "element",
                        "content": {
                          "type": "SYMBOL",
                          "name": "_element"
                        }
                      },
                      {
                        "type": "REPEAT1",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "element",
                              "content": {
                                "type": "SYMBOL",
                                "name": "_element"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": ")"
              }
            ]
          }
        ]
      }
    },
    "list": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "FIELD",
                    "name": "element",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_element"
                    }
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ","
                        },
                        {
                          "type": "FIELD",
                          "name": "element",
                          "content": {
                            "type": "SYMBOL",
                            "name": "_element"
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "_element": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_simple_term"
        },
        {
          "type": "SYMBOL",
          "name": "spread"
        }
      ]
    },
    "spread": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "..."
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        }
      ]
    },
    "tagged_value": {
      "type": "PREC_RIGHT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "<"
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          },
          {
            "type": "STRING",
            "value": ">"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "value",
                "content": {
                  "type": "SYMBOL",
                  "name": "_simple_term"
                }
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "type_alias": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "type"
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "type_declaration"
            }
          },
          {
            "type": "STRING",
            "value": ":="
          },
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "type_hint": {
      "type": "PREC_LEFT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_term"
            }
          },
          {
            "type": "STRING",
            "value": "as"
          },
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "_identifier_without_operators": {
      "type": "PATTERN",
      "value": "_?[a-z][a-z0-9_]*(\\?|!)?"
    },
    "_operator": {
      "type": "PATTERN",
      "value": "(==|[!@$%^&*|<>~*\\\\\\-+/.])[!@$%^&*|<>~*\\\\\\-+/.=?]*"
    },
    "identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_operator"
        },
        {
          "type": "SYMBOL",
          "name": "_identifier_without_operators"
        }
      ]
    },
    "_section_identifier": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "("
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_operator"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "STRING",
                "value": ")"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "`"
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_identifier_without_operators"
                  },
                  "named": true,
                  "value": "identifier"
                }
              },
              {
                "type": "STRING",
                "value": "`"
              }
            ]
          }
        ]
      }
    },
    "group": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "term",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_pattern": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_assignable_pattern"
          },
          {
            "type": "SYMBOL",
            "name": "_literal_pattern"
          }
        ]
      }
    },
    "_assignable_pattern": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "identifier_pattern"
        },
        {
          "type": "SYMBOL",
          "name": "destructuring_pattern"
        },
        {
          "type": "SYMBOL",
          "name": "tagged_pattern"
        },
        {
          "type": "SYMBOL",
          "name": "pattern_group"
        }
      ]
    },
    "destructuring_pattern": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "FIELD",
                    "name": "alias",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "identifier"
                      },
                      "named": true,
                      "value": "identifier_pattern_name"
                    }
                  },
                  {
                    "type": "STRING",
                    "value": "@"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "pattern",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "struct_pattern"
                },
                {
                  "type": "SYMBOL",
                  "name": "tuple_pattern"
                },
                {
                  "type": "SYMBOL",
                  "name": "list_pattern"
                }
              ]
            }
          }
        ]
      }
    },
    "struct_pattern": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "{"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "..."
                      },
                      {
                        "type": "FIELD",
                        "name": "rest",
                        "content": {
                          "type": "SYMBOL",
                          "name": "identifier_pattern"
                        }
                      }
                    ]
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "FIELD",
                            "name": "member",
                            "content": {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "member_pattern"
                                },
                                {
                                  "type": "ALIAS",
                                  "content": {
                                    "type": "SYMBOL",
                                    "name": "identifier_pattern"
                                  },
                                  "named": true,
                                  "value": "shorthand_member_pattern"
                                }
                              ]
                            }
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "STRING",
                                  "value": ","
                                },
                                {
                                  "type": "FIELD",
                                  "name": "member",
                                  "content": {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "SYMBOL",
                                        "name": "member_pattern"
                                      },
                                      {
                                        "type": "ALIAS",
                                        "content": {
                                          "type": "SYMBOL",
                                          "name": "identifier_pattern"
                                        },
                                        "named": true,
                                        "value": "shorthand_member_pattern"
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "STRING",
                                "value": ","
                              },
                              {
                                "type": "STRING",
                                "value": "..."
                              },
                              {
                                "type": "FIELD",
                                "name": "rest",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier_pattern"
                                }
                              }
                            ]
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "}"
          }
        ]
      }
    },
    "tuple_pattern": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "()"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "("
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "..."
                          },
                          {
                            "type": "FIELD",
                            "name": "rest",
                            "content": {
                              "type": "SYMBOL",
                              "name": "identifier_pattern"
                            }
                          }
                        ]
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "FIELD",
                                "name": "element",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "_pattern"
                                }
                              },
                              {
                                "type": "REPEAT1",
                                "content": {
                                  "type": "SEQ",
                                  "members": [
                                    {
                                      "type": "STRING",
                                      "value": ","
                                    },
                                    {
                                      "type": "FIELD",
                                      "name": "element",
                                      "content": {
                                        "type": "SYMBOL",
                                        "name": "_pattern"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          {
                            "type": "CHOICE",
                            "members": [
                              {
                                "type": "SEQ",
                                "members": [
                                  {
                                    "type": "STRING",
                                    "value": ","
                                  },
                                  {
                                    "type": "STRING",
                                    "value": "..."
                                  },
                                  {
                                    "type": "FIELD",
                                    "name": "rest",
                                    "content": {
                                      "type": "SYMBOL",
                                      "name": "identifier_pattern"
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "BLANK"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": ")"
              }
            ]
          }
        ]
      }
    },
    "list_pattern": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "..."
                      },
                      {
                        "type": "FIELD",
                        "name": "rest",
                        "content": {
                          "type": "SYMBOL",
                          "name": "identifier_pattern"
                        }
                      }
                    ]
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "FIELD",
                            "name": "element",
                            "content": {
                              "type": "SYMBOL",
                              "name": "_pattern"
                            }
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "STRING",
                                  "value": ","
                                },
                                {
                                  "type": "FIELD",
                                  "name": "element",
                                  "content": {
                                    "type": "SYMBOL",
                                    "name": "_pattern"
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "STRING",
                                "value": ","
                              },
                              {
                                "type": "STRING",
                                "value": "..."
                              },
                              {
                                "type": "FIELD",
                                "name": "rest",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier_pattern"
                                }
                              }
                            ]
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "member_pattern": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "["
                },
                {
                  "type": "FIELD",
                  "name": "key",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_simple_term"
                  }
                },
                {
                  "type": "STRING",
                  "value": "]"
                }
              ]
            },
            {
              "type": "FIELD",
              "name": "key",
              "content": {
                "type": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "identifier"
                },
                "named": true,
                "value": "shorthand_member_identifier"
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_pattern"
          }
        }
      ]
    },
    "identifier_pattern": {
      "type": "PREC_RIGHT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "identifier"
              },
              "named": true,
              "value": "identifier_pattern_name"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "::"
                  },
                  {
                    "type": "FIELD",
                    "name": "type",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_type"
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "="
                  },
                  {
                    "type": "FIELD",
                    "name": "default",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_simple_term"
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "tagged_pattern": {
      "type": "PREC_RIGHT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "<"
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          },
          {
            "type": "STRING",
            "value": ">"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "pattern",
                "content": {
                  "type": "SYMBOL",
                  "name": "_pattern"
                }
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "_literal_pattern": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "raw_string"
        },
        {
          "type": "SYMBOL",
          "name": "regex"
        }
      ]
    },
    "pattern_group": {
      "type": "PREC",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "FIELD",
            "name": "pattern",
            "content": {
              "type": "SYMBOL",
              "name": "_pattern"
            }
          },
          {
            "type": "STRING",
            "value": ")"
          }
        ]
      }
    },
    "type_variable_declaration": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "identifier"
              },
              "named": true,
              "value": "type_variable_declaration_name"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<:"
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "constraint",
                        "content": {
                          "type": "SYMBOL",
                          "name": "_type"
                        }
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "("
                          },
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "FIELD",
                                "name": "constraint",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "_type"
                                }
                              },
                              {
                                "type": "REPEAT1",
                                "content": {
                                  "type": "SEQ",
                                  "members": [
                                    {
                                      "type": "STRING",
                                      "value": ";"
                                    },
                                    {
                                      "type": "FIELD",
                                      "name": "constraint",
                                      "content": {
                                        "type": "SYMBOL",
                                        "name": "_type"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          {
                            "type": "STRING",
                            "value": ")"
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "_type": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "parametric_type"
          },
          {
            "type": "SYMBOL",
            "name": "curried_type"
          },
          {
            "type": "SYMBOL",
            "name": "intersection_type"
          },
          {
            "type": "SYMBOL",
            "name": "union_type"
          },
          {
            "type": "SYMBOL",
            "name": "subtraction_type"
          },
          {
            "type": "SYMBOL",
            "name": "conditional_type"
          },
          {
            "type": "SYMBOL",
            "name": "struct_type"
          },
          {
            "type": "SYMBOL",
            "name": "map_type"
          },
          {
            "type": "SYMBOL",
            "name": "tuple_type"
          },
          {
            "type": "SYMBOL",
            "name": "list_type"
          },
          {
            "type": "SYMBOL",
            "name": "tagged_type"
          },
          {
            "type": "SYMBOL",
            "name": "keyof"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "type_variable"
          },
          {
            "type": "SYMBOL",
            "name": "type_group"
          },
          {
            "type": "SYMBOL",
            "name": "typeof"
          },
          {
            "type": "SYMBOL",
            "name": "access_type"
          },
          {
            "type": "SYMBOL",
            "name": "refinement_type"
          },
          {
            "type": "SYMBOL",
            "name": "refinement_type_declaration"
          }
        ]
      }
    },
    "_term_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "_literal"
        }
      ]
    },
    "typeof": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "typeof"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_term_type"
          }
        }
      ]
    },
    "parametric_type": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "type"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "argument",
                        "content": {
                          "type": "SYMBOL",
                          "name": "_type"
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "argument",
                              "content": {
                                "type": "SYMBOL",
                                "name": "_type"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "()"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "("
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "FIELD",
                                "name": "element",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "_term_type"
                                }
                              },
                              {
                                "type": "REPEAT",
                                "content": {
                                  "type": "SEQ",
                                  "members": [
                                    {
                                      "type": "STRING",
                                      "value": ","
                                    },
                                    {
                                      "type": "FIELD",
                                      "name": "element",
                                      "content": {
                                        "type": "SYMBOL",
                                        "name": "_term_type"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": ")"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "curried_type": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "from",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "STRING",
            "value": "->"
          },
          {
            "type": "FIELD",
            "name": "to",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "intersection_type": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "left",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "STRING",
            "value": "&"
          },
          {
            "type": "FIELD",
            "name": "right",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "union_type": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "left",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "STRING",
            "value": "|"
          },
          {
            "type": "FIELD",
            "name": "right",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "subtraction_type": {
      "type": "PREC_RIGHT",
      "value": -1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "left",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "parametric_type"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "identifier"
                  },
                  "named": true,
                  "value": "type_variable"
                },
                {
                  "type": "SYMBOL",
                  "name": "union_type"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "\\"
          },
          {
            "type": "FIELD",
            "name": "right",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "parametric_type"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "identifier"
                  },
                  "named": true,
                  "value": "type_variable"
                },
                {
                  "type": "SYMBOL",
                  "name": "union_type"
                }
              ]
            }
          }
        ]
      }
    },
    "conditional_type": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "if"
          },
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "<:"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "FIELD",
                    "name": "constraint",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_type"
                    }
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "("
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "FIELD",
                            "name": "constraint",
                            "content": {
                              "type": "SYMBOL",
                              "name": "_type"
                            }
                          },
                          {
                            "type": "REPEAT1",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "STRING",
                                  "value": ";"
                                },
                                {
                                  "type": "FIELD",
                                  "name": "constraint",
                                  "content": {
                                    "type": "SYMBOL",
                                    "name": "_type"
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": ")"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "STRING",
            "value": "then"
          },
          {
            "type": "FIELD",
            "name": "consequence",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "STRING",
            "value": "else"
          },
          {
            "type": "FIELD",
            "name": "alternative",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "struct_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "member",
                  "content": {
                    "type": "SYMBOL",
                    "name": "member_type"
                  }
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "FIELD",
                        "name": "member",
                        "content": {
                          "type": "SYMBOL",
                          "name": "member_type"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "member_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "key",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            },
            "named": true,
            "value": "shorthand_member_identifier"
          }
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        }
      ]
    },
    "map_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "property",
                  "content": {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "identifier"
                    },
                    "named": true,
                    "value": "type_variable_declaration_name"
                  }
                },
                {
                  "type": "STRING",
                  "value": "in"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "key",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        },
        {
          "type": "STRING",
          "value": "]"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "tuple_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "()"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "FIELD",
                      "name": "element",
                      "content": {
                        "type": "SYMBOL",
                        "name": "_type"
                      }
                    },
                    {
                      "type": "REPEAT1",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": ","
                          },
                          {
                            "type": "FIELD",
                            "name": "element",
                            "content": {
                              "type": "SYMBOL",
                              "name": "_type"
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        }
      ]
    },
    "list_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "FIELD",
          "name": "element",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "access_type": {
      "type": "PREC",
      "value": 19,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          },
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_term_type"
            }
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "tagged_type": {
      "type": "PREC_RIGHT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "<"
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          },
          {
            "type": "STRING",
            "value": ">"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "type",
                "content": {
                  "type": "SYMBOL",
                  "name": "_type"
                }
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "keyof": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "keyof"
          },
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "refinement_type_declaration": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "identifier"
              },
              "named": true,
              "value": "identifier_pattern_name"
            }
          },
          {
            "type": "STRING",
            "value": "::"
          },
          {
            "type": "FIELD",
            "name": "type",
            "content": {
              "type": "SYMBOL",
              "name": "_type"
            }
          }
        ]
      }
    },
    "refinement_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "FIELD",
          "name": "generator",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        },
        {
          "type": "STRING",
          "value": "|"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "predicate",
              "content": {
                "type": "SYMBOL",
                "name": "_predicate"
              }
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "FIELD",
                    "name": "predicate",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_predicate"
                    }
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "_predicate": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "application"
        },
        {
          "type": "SYMBOL",
          "name": "infix_application"
        },
        {
          "type": "SYMBOL",
          "name": "prefix_application"
        },
        {
          "type": "SYMBOL",
          "name": "pipeline"
        }
      ]
    },
    "type_declaration": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "FIELD",
                    "name": "tag",
                    "content": {
                      "type": "ALIAS",
                      "content": {
                        "type": "SYMBOL",
                        "name": "identifier"
                      },
                      "named": true,
                      "value": "identifier_pattern_name"
                    }
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "SYMBOL",
              "name": "type"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "FIELD",
                        "name": "parameter",
                        "content": {
                          "type": "SYMBOL",
                          "name": "type_variable_declaration"
                        }
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "FIELD",
                              "name": "parameter",
                              "content": {
                                "type": "SYMBOL",
                                "name": "type_variable_declaration"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ">"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "()"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "("
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "FIELD",
                                "name": "element",
                                "content": {
                                  "type": "SYMBOL",
                                  "name": "identifier_pattern"
                                }
                              },
                              {
                                "type": "REPEAT",
                                "content": {
                                  "type": "SEQ",
                                  "members": [
                                    {
                                      "type": "STRING",
                                      "value": ","
                                    },
                                    {
                                      "type": "FIELD",
                                      "name": "element",
                                      "content": {
                                        "type": "SYMBOL",
                                        "name": "identifier_pattern"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": ")"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "type_group": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "SYMBOL",
            "name": "_type"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "type": {
      "type": "PATTERN",
      "value": "[A-Z][a-zA-Z0-9]*"
    },
    "_literal": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "boolean"
          },
          {
            "type": "SYMBOL",
            "name": "number"
          },
          {
            "type": "SYMBOL",
            "name": "string"
          },
          {
            "type": "SYMBOL",
            "name": "regex"
          }
        ]
      }
    },
    "boolean": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "false"
        },
        {
          "type": "STRING",
          "value": "true"
        }
      ]
    },
    "_decimal": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-9]+"
                }
              },
              {
                "type": "STRING",
                "value": "."
              },
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-9]+"
                }
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "PATTERN",
                        "value": "e-?"
                      },
                      {
                        "type": "REPEAT1",
                        "content": {
                          "type": "PATTERN",
                          "value": "_?[0-9]+"
                        }
                      }
                    ]
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-9]+"
                }
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "e-?"
                  },
                  {
                    "type": "REPEAT1",
                    "content": {
                      "type": "PATTERN",
                      "value": "_?[0-9]+"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "_integer": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "0x"
              },
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[A-Fa-f0-9]+"
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "0o"
              },
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-7]+"
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "0b"
              },
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-1]+"
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "REPEAT1",
                "content": {
                  "type": "PATTERN",
                  "value": "_?[0-9]+"
                }
              }
            ]
          }
        ]
      }
    },
    "number": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_decimal"
        },
        {
          "type": "SYMBOL",
          "name": "_integer"
        }
      ]
    },
    "raw_string": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_string_start"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_string_content"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_string_end"
        }
      ]
    },
    "string": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_string_start"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "FIELD",
                "name": "interpolation",
                "content": {
                  "type": "SYMBOL",
                  "name": "interpolation"
                }
              },
              {
                "type": "FIELD",
                "name": "escapeSequence",
                "content": {
                  "type": "SYMBOL",
                  "name": "escape_sequence"
                }
              },
              {
                "type": "SYMBOL",
                "name": "_string_content"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_string_end"
        }
      ]
    },
    "interpolation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "FIELD",
          "name": "term",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_term"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "escape_sequence": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "\\"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "PATTERN",
                "value": "[^xu0-7]"
              },
              {
                "type": "PATTERN",
                "value": "[0-7]{1,3}"
              },
              {
                "type": "PATTERN",
                "value": "x[0-9a-fA-F]{2}"
              },
              {
                "type": "PATTERN",
                "value": "u[0-9a-fA-F]{4}"
              },
              {
                "type": "PATTERN",
                "value": "u{[0-9a-fA-F]+}"
              }
            ]
          }
        ]
      }
    },
    "regex": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "r/"
        },
        {
          "type": "FIELD",
          "name": "pattern",
          "content": {
            "type": "SYMBOL",
            "name": "regex_pattern"
          }
        },
        {
          "type": "STRING",
          "value": "/"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "flags",
              "content": {
                "type": "SYMBOL",
                "name": "regex_flags"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "regex_pattern": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "REPEAT1",
        "content": {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "["
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "STRING",
                            "value": "\\"
                          },
                          {
                            "type": "PATTERN",
                            "value": "."
                          }
                        ]
                      },
                      {
                        "type": "PATTERN",
                        "value": "[^\\]\\n\\\\]"
                      }
                    ]
                  }
                },
                {
                  "type": "STRING",
                  "value": "]"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "\\"
                },
                {
                  "type": "PATTERN",
                  "value": "."
                }
              ]
            },
            {
              "type": "PATTERN",
              "value": "[^/\\\\\\[\\n]"
            }
          ]
        }
      }
    },
    "regex_flags": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[a-z]+"
      }
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "PATTERN",
      "value": "\\s+"
    }
  ],
  "conflicts": [
    [
      "_simple_term",
      "identifier_pattern"
    ],
    [
      "_simple_term",
      "identifier_pattern",
      "_type"
    ],
    [
      "string",
      "raw_string"
    ],
    [
      "struct",
      "struct_pattern"
    ],
    [
      "struct",
      "struct_pattern",
      "struct_type"
    ],
    [
      "tuple",
      "tuple_pattern"
    ],
    [
      "tuple",
      "tuple_pattern",
      "tuple_type"
    ],
    [
      "list",
      "list_pattern"
    ],
    [
      "application",
      "prefix_application",
      "infix_application"
    ],
    [
      "application",
      "infix_application"
    ],
    [
      "tagged_value",
      "tagged_pattern"
    ],
    [
      "tagged_value",
      "tagged_pattern",
      "tagged_type"
    ],
    [
      "tagged_value",
      "tagged_type"
    ],
    [
      "tagged_pattern",
      "tagged_type"
    ]
  ],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "_newline"
    },
    {
      "type": "SYMBOL",
      "name": "_indent"
    },
    {
      "type": "SYMBOL",
      "name": "_dedent"
    },
    {
      "type": "SYMBOL",
      "name": "_string_start"
    },
    {
      "type": "SYMBOL",
      "name": "_string_content"
    },
    {
      "type": "SYMBOL",
      "name": "_string_end"
    }
  ],
  "inline": [],
  "supertypes": []
}

