{
  "name": "unison",
  "rules": {
    "unison": {
      "type": "REPEAT",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "watch_expression"
          },
          {
            "type": "SYMBOL",
            "name": "test_watch_expression"
          },
          {
            "type": "SYMBOL",
            "name": "type_declaration"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "binding"
            },
            "named": true,
            "value": "term_declaration"
          },
          {
            "type": "SYMBOL",
            "name": "fold"
          },
          {
            "type": "SYMBOL",
            "name": "use_clause"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "effect_declaration"
            },
            "named": true,
            "value": "ability_declaration"
          }
        ]
      }
    },
    "_statement": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_binding"
          },
          "named": true,
          "value": "term_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "destructuring_bind"
        },
        {
          "type": "SYMBOL",
          "name": "_block_term"
        }
      ]
    },
    "term_definition2": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_lhs"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "kw_equals"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "__block"
          }
        ]
      }
    },
    "__block": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "use_clause"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_layout_semicolon"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "use_clause"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "_layout_semicolon"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "PREC_RIGHT",
              "value": 0,
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_statement"
                      }
                    ]
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_layout_semicolon"
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_statement"
                            }
                          ]
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_layout_semicolon"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        }
      ]
    },
    "__layout_block": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "use_clause"
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_layout_semicolon"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "use_clause"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_layout_semicolon"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_statement"
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_layout_semicolon"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_statement"
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_layout_semicolon"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "binding": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "doc_block"
                },
                {
                  "type": "SYMBOL",
                  "name": "_layout_semicolon"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_binding"
        }
      ]
    },
    "_binding": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_signature"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "term_definition2"
          },
          "named": true,
          "value": "term_definition"
        }
      ]
    },
    "destructuring_bind": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "parenthesized_or_tuple_pattern"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "kw_equals"
                },
                {
                  "type": "SYMBOL",
                  "name": "_layout_start"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "__layout_block"
            }
          ]
        }
      ]
    },
    "_block_term": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "literal_function"
        },
        {
          "type": "SYMBOL",
          "name": "_infix_app_or_boolean_op"
        }
      ]
    },
    "literal_function": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_prefix_definition_name"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "->"
          },
          "named": true,
          "value": "arrow_symbol"
        },
        {
          "type": "SYMBOL",
          "name": "_term"
        }
      ]
    },
    "literal_function2": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_prefix_definition_name"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "->"
          },
          "named": true,
          "value": "arrow_symbol"
        },
        {
          "type": "SYMBOL",
          "name": "_term2"
        }
      ]
    },
    "_term": {
      "type": "SYMBOL",
      "name": "_term2"
    },
    "_term2": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "literal_function2"
          },
          "named": true,
          "value": "literal_function"
        },
        {
          "type": "SYMBOL",
          "name": "_term3"
        }
      ]
    },
    "_term3": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_infix_app_or_boolean_op"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "type_signature_colon"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_computation_type"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "_term4": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_term_leaf"
      }
    },
    "_infix_app_or_boolean_op": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_term4"
              }
            ]
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_generic_infix_app"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_term4"
                    }
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "_generic_infix_app": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "and"
        },
        {
          "type": "SYMBOL",
          "name": "or"
        },
        {
          "type": "SYMBOL",
          "name": "_infix"
        }
      ]
    },
    "_infix": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_hq_qualified_infix_term"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_layout_semicolon"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "literal_text"
        },
        {
          "type": "SYMBOL",
          "name": "nat"
        },
        {
          "type": "SYMBOL",
          "name": "int"
        },
        {
          "type": "SYMBOL",
          "name": "float"
        },
        {
          "type": "SYMBOL",
          "name": "literal_char"
        },
        {
          "type": "SYMBOL",
          "name": "literal_boolean"
        },
        {
          "type": "SYMBOL",
          "name": "literal_byte"
        },
        {
          "type": "SYMBOL",
          "name": "literal_hex"
        },
        {
          "type": "SYMBOL",
          "name": "literal_list"
        },
        {
          "type": "SYMBOL",
          "name": "literal_function"
        },
        {
          "type": "SYMBOL",
          "name": "tuple_or_parenthesized"
        },
        {
          "type": "SYMBOL",
          "name": "literal_termlink"
        },
        {
          "type": "SYMBOL",
          "name": "literal_typelink"
        },
        {
          "type": "SYMBOL",
          "name": "unit"
        }
      ]
    },
    "unit": {
      "type": "STRING",
      "value": "()"
    },
    "nat": {
      "type": "PATTERN",
      "value": "[0-9]+"
    },
    "int": {
      "type": "PATTERN",
      "value": "[+-][0-9]+"
    },
    "float": {
      "type": "PATTERN",
      "value": "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"
    },
    "literal_text": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "\""
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "[^\\\\\"\\n]"
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\(\\^)?."
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\\\n\\s*\\\\"
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "\""
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "\"\"\""
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "\""
                  },
                  {
                    "type": "PATTERN",
                    "value": "[^\\\\\"\\n]"
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\(\\^)?."
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\\\n\\s*\\\\"
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "\"\"\""
            }
          ]
        }
      ]
    },
    "literal_char": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PATTERN",
          "value": "\\?.",
          "flags": "u"
        },
        {
          "type": "PATTERN",
          "value": "\\?\\\\[0abfnrtvs\\'\"]"
        }
      ]
    },
    "literal_boolean": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "true"
        },
        {
          "type": "STRING",
          "value": "false"
        }
      ]
    },
    "literal_byte": {
      "type": "PATTERN",
      "value": "0xs[0-9a-fA-F]+"
    },
    "literal_hex": {
      "type": "PATTERN",
      "value": "0x[0-9a-fA-F]+"
    },
    "tuple_or_parenthesized": {
      "type": "SEQ",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_term"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_term"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "literal_termlink": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "kw_termlink"
        },
        {
          "type": "SYMBOL",
          "name": "_hash_qualified"
        }
      ]
    },
    "literal_typelink": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "kw_typelink"
        },
        {
          "type": "SYMBOL",
          "name": "_hash_qualified"
        }
      ]
    },
    "_lhs": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_infix_lhs"
        },
        {
          "type": "SYMBOL",
          "name": "_prefix_lhs"
        }
      ]
    },
    "_infix_lhs": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "param",
          "content": {
            "type": "SYMBOL",
            "name": "_prefix_definition_name"
          }
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "_symboly_definition_name"
          }
        },
        {
          "type": "FIELD",
          "name": "param",
          "content": {
            "type": "SYMBOL",
            "name": "_prefix_definition_name"
          }
        }
      ]
    },
    "_prefix_lhs": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "_prefix_definition_name"
          }
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "FIELD",
            "name": "param",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "wordy_id"
              },
              "named": true,
              "value": "regular_identifier"
            }
          }
        }
      ]
    },
    "_pattern_matching": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_match_with"
        },
        {
          "type": "SYMBOL",
          "name": "_lam_case"
        }
      ]
    },
    "_match_with": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "match"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "scrutinee",
            "content": {
              "type": "SYMBOL",
              "name": "_term"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "with"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_match_cases"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "_lam_case": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "cases"
          },
          {
            "type": "SYMBOL",
            "name": "_layout_start"
          },
          {
            "type": "SYMBOL",
            "name": "_match_cases"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "_match_cases": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "pattern"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_layout_semicolon"
                },
                {
                  "type": "SYMBOL",
                  "name": "pattern"
                }
              ]
            }
          }
        ]
      }
    },
    "pattern": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_pattern_root"
        },
        {
          "type": "PREC_RIGHT",
          "value": 0,
          "content": {
            "type": "SYMBOL",
            "name": "_pattern_rhs"
          }
        }
      ]
    },
    "_pattern_rhs": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_guard_layout_start"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "guarded_block"
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_layout_semicolon"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "guarded_block"
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "arrow_symbol"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_layout_start"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "__block"
              }
            ]
          }
        ]
      }
    },
    "_literal_pattern": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "literal_boolean"
        },
        {
          "type": "SYMBOL",
          "name": "nat"
        },
        {
          "type": "SYMBOL",
          "name": "int"
        },
        {
          "type": "SYMBOL",
          "name": "literal_char"
        },
        {
          "type": "SYMBOL",
          "name": "literal_text"
        }
      ]
    },
    "guard": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_infix_app_or_boolean_op"
        },
        {
          "type": "SYMBOL",
          "name": "otherwise"
        }
      ]
    },
    "guarded_block": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "pipe"
          },
          {
            "type": "SYMBOL",
            "name": "guard"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "arrow_symbol"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PREC_RIGHT",
                    "value": 0,
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "PREC_RIGHT",
                          "value": 0,
                          "content": {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "SYMBOL",
                                "name": "use_clause"
                              },
                              {
                                "type": "REPEAT",
                                "content": {
                                  "type": "SEQ",
                                  "members": [
                                    {
                                      "type": "PREC_RIGHT",
                                      "value": 0,
                                      "content": {
                                        "type": "CHOICE",
                                        "members": [
                                          {
                                            "type": "STRING",
                                            "value": ";"
                                          },
                                          {
                                            "type": "SYMBOL",
                                            "name": "_layout_semicolon"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      "type": "SYMBOL",
                                      "name": "use_clause"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "CHOICE",
                              "members": [
                                {
                                  "type": "STRING",
                                  "value": ";"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "_layout_semicolon"
                                }
                              ]
                            },
                            {
                              "type": "BLANK"
                            }
                          ]
                        }
                      ]
                    }
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "PREC_RIGHT",
                "value": 0,
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "PREC_RIGHT",
                      "value": 0,
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_statement"
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "PREC_RIGHT",
                                  "value": 0,
                                  "content": {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": ";"
                                      },
                                      {
                                        "type": "SYMBOL",
                                        "name": "_layout_semicolon"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "_statement"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ";"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_layout_semicolon"
                            }
                          ]
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_layout_end"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "_pattern_root": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_pattern_candidates"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_pattern_infix_app"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_pattern_candidates"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "_pattern_infix_app": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "++"
          },
          "named": true,
          "value": "concat"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "+:"
          },
          "named": true,
          "value": "cons"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": ":+"
          },
          "named": true,
          "value": "snoc"
        }
      ]
    },
    "_pattern_constructor": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_hq_qualified_prefix_term"
                }
              ]
            },
            "named": true,
            "value": "ctor"
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_pattern_leaf"
                }
              ]
            }
          }
        ]
      }
    },
    "_pattern_candidates": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_pattern_constructor"
        },
        {
          "type": "SYMBOL",
          "name": "_pattern_leaf"
        }
      ]
    },
    "var_or_as": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "wordy_id"
          },
          "named": true,
          "value": "regular_identifier"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": "@"
              },
              "named": true,
              "value": "at_token"
            },
            {
              "type": "SYMBOL",
              "name": "_pattern_leaf"
            }
          ]
        }
      ]
    },
    "literal_list_pattern": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "["
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_pattern_root"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "ALIAS",
                            "content": {
                              "type": "STRING",
                              "value": ","
                            },
                            "named": true,
                            "value": "comma"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_pattern_root"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": "]"
            }
          ]
        }
      ]
    },
    "parenthesized_or_tuple_pattern": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": "("
              },
              "named": true,
              "value": "open_parens"
            },
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_pattern_root"
                    }
                  ]
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "ALIAS",
                        "content": {
                          "type": "STRING",
                          "value": ","
                        },
                        "named": true,
                        "value": "comma"
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_pattern_root"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_layout_end"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": ")"
              },
              "named": true,
              "value": "close_parens"
            }
          ]
        }
      ]
    },
    "effect_pure": {
      "type": "SYMBOL",
      "name": "_pattern_root"
    },
    "effect_bind": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_hq_qualified_prefix_term"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SYMBOL",
            "name": "_pattern_leaf"
          }
        },
        {
          "type": "STRING",
          "value": "->"
        },
        {
          "type": "SYMBOL",
          "name": "_pattern_root"
        }
      ]
    },
    "effect_pattern": {
      "type": "SEQ",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "effect_pure"
            },
            {
              "type": "SYMBOL",
              "name": "effect_bind"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "_pattern_leaf": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "wordy_id"
            },
            "named": true,
            "value": "var_or_nullary_ctor"
          },
          {
            "type": "SYMBOL",
            "name": "var_or_as"
          },
          {
            "type": "SYMBOL",
            "name": "_literal_pattern"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "STRING",
              "value": "_"
            },
            "named": true,
            "value": "blank_pattern"
          },
          {
            "type": "SYMBOL",
            "name": "literal_list_pattern"
          },
          {
            "type": "SYMBOL",
            "name": "parenthesized_or_tuple_pattern"
          },
          {
            "type": "SYMBOL",
            "name": "effect_pattern"
          }
        ]
      }
    },
    "_boolean_exp": {
      "type": "PREC_LEFT",
      "value": "_boolean_exp",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_expression"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "or"
              },
              {
                "type": "SYMBOL",
                "name": "and"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_expression"
          }
        ]
      }
    },
    "kw_if": {
      "type": "PREC",
      "value": 10,
      "content": {
        "type": "STRING",
        "value": "if"
      }
    },
    "kw_then": {
      "type": "PREC",
      "value": 10,
      "content": {
        "type": "STRING",
        "value": "then"
      }
    },
    "kw_else": {
      "type": "PREC",
      "value": 10,
      "content": {
        "type": "STRING",
        "value": "else"
      }
    },
    "delay_quote": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "'"
        },
        {
          "type": "SYMBOL",
          "name": "_term_leaf"
        }
      ]
    },
    "delay_block": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "do"
          },
          {
            "type": "SYMBOL",
            "name": "_layout_start"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "PREC_RIGHT",
                "value": 0,
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "PREC_RIGHT",
                      "value": 0,
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "use_clause"
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "PREC_RIGHT",
                                  "value": 0,
                                  "content": {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": ";"
                                      },
                                      {
                                        "type": "SYMBOL",
                                        "name": "_layout_semicolon"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "use_clause"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ";"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_layout_semicolon"
                            }
                          ]
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "PREC_RIGHT",
            "value": 0,
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "PREC_RIGHT",
                  "value": 0,
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_statement"
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "PREC_RIGHT",
                              "value": 0,
                              "content": {
                                "type": "CHOICE",
                                "members": [
                                  {
                                    "type": "STRING",
                                    "value": ";"
                                  },
                                  {
                                    "type": "SYMBOL",
                                    "name": "_layout_semicolon"
                                  }
                                ]
                              }
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_statement"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ";"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_layout_semicolon"
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_layout_end"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "bang": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "!"
        },
        {
          "type": "SYMBOL",
          "name": "_term_leaf"
        }
      ]
    },
    "_number": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "float"
        },
        {
          "type": "SYMBOL",
          "name": "nat"
        },
        {
          "type": "SYMBOL",
          "name": "int"
        }
      ]
    },
    "_link": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "literal_termlink"
        },
        {
          "type": "SYMBOL",
          "name": "literal_typelink"
        }
      ]
    },
    "_term_leaf": {
      "type": "PREC_RIGHT",
      "value": 2,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "force"
          },
          {
            "type": "PREC",
            "value": 2,
            "content": {
              "type": "SYMBOL",
              "name": "_hq_qualified_prefix_term"
            }
          },
          {
            "type": "SYMBOL",
            "name": "literal_text"
          },
          {
            "type": "SYMBOL",
            "name": "literal_char"
          },
          {
            "type": "SYMBOL",
            "name": "_number"
          },
          {
            "type": "SYMBOL",
            "name": "literal_byte"
          },
          {
            "type": "SYMBOL",
            "name": "literal_hex"
          },
          {
            "type": "SYMBOL",
            "name": "literal_boolean"
          },
          {
            "type": "SYMBOL",
            "name": "_link"
          },
          {
            "type": "PREC",
            "value": 1,
            "content": {
              "type": "SYMBOL",
              "name": "tuple_or_parenthesized"
            }
          },
          {
            "type": "SYMBOL",
            "name": "_keyword_block"
          },
          {
            "type": "SYMBOL",
            "name": "literal_list"
          },
          {
            "type": "SYMBOL",
            "name": "delay_quote"
          },
          {
            "type": "SYMBOL",
            "name": "delay_block"
          },
          {
            "type": "SYMBOL",
            "name": "bang"
          },
          {
            "type": "SYMBOL",
            "name": "doc_block"
          }
        ]
      }
    },
    "literal_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "["
          },
          "named": true,
          "value": "open_bracket"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_term"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_term"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "]"
          },
          "named": true,
          "value": "close_bracket"
        }
      ]
    },
    "_keyword_block": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "exp_let"
        },
        {
          "type": "SYMBOL",
          "name": "handler"
        },
        {
          "type": "SYMBOL",
          "name": "rewrite_block"
        },
        {
          "type": "SYMBOL",
          "name": "exp_if"
        },
        {
          "type": "SYMBOL",
          "name": "_pattern_matching"
        }
      ]
    },
    "exp_if": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "kw_if"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "__block"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "kw_then"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "__block"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "kw_else"
              },
              {
                "type": "SYMBOL",
                "name": "_layout_start"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "__block"
          }
        ]
      }
    },
    "force": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_hq_qualified_prefix_term"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "()"
          },
          "named": true,
          "value": "unit"
        }
      ]
    },
    "_expression": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "literal_function"
          },
          {
            "type": "SYMBOL",
            "name": "exp_let"
          },
          {
            "type": "SYMBOL",
            "name": "exp_if"
          },
          {
            "type": "SYMBOL",
            "name": "handler"
          },
          {
            "type": "SYMBOL",
            "name": "_literal"
          },
          {
            "type": "SYMBOL",
            "name": "_hash_qualified"
          },
          {
            "type": "SYMBOL",
            "name": "_pattern_matching"
          },
          {
            "type": "SYMBOL",
            "name": "parenthetical_exp"
          },
          {
            "type": "SYMBOL",
            "name": "_boolean_exp"
          },
          {
            "type": "SYMBOL",
            "name": "delay_block"
          },
          {
            "type": "SYMBOL",
            "name": "bang"
          }
        ]
      }
    },
    "parenthetical_exp": {
      "type": "PREC",
      "value": -10,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "SYMBOL",
            "name": "_expression"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "type_signature_colon"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_value_type"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": ")"
          }
        ]
      }
    },
    "operator_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "symboly_id"
          },
          "named": true,
          "value": "operator"
        },
        {
          "type": "SYMBOL",
          "name": "_expression"
        }
      ]
    },
    "_block": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            },
            {
              "type": "PREC_RIGHT",
              "value": 0,
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "PREC_RIGHT",
                    "value": 0,
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_statement"
                        },
                        {
                          "type": "REPEAT",
                          "content": {
                            "type": "SEQ",
                            "members": [
                              {
                                "type": "PREC_RIGHT",
                                "value": 0,
                                "content": {
                                  "type": "CHOICE",
                                  "members": [
                                    {
                                      "type": "STRING",
                                      "value": ";"
                                    },
                                    {
                                      "type": "SYMBOL",
                                      "name": "_layout_semicolon"
                                    }
                                  ]
                                }
                              },
                              {
                                "type": "SYMBOL",
                                "name": "_statement"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": ";"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_layout_semicolon"
                          }
                        ]
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  }
                ]
              }
            },
            {
              "type": "SYMBOL",
              "name": "_layout_end"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_statement"
        }
      ]
    },
    "exp_let": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "kw_let"
          },
          {
            "type": "SYMBOL",
            "name": "_layout_start"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "PREC_RIGHT",
                "value": 0,
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "PREC_RIGHT",
                      "value": 0,
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "use_clause"
                          },
                          {
                            "type": "REPEAT",
                            "content": {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "PREC_RIGHT",
                                  "value": 0,
                                  "content": {
                                    "type": "CHOICE",
                                    "members": [
                                      {
                                        "type": "STRING",
                                        "value": ";"
                                      },
                                      {
                                        "type": "SYMBOL",
                                        "name": "_layout_semicolon"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "use_clause"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "CHOICE",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ";"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_layout_semicolon"
                            }
                          ]
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_statement"
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_layout_semicolon"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_statement"
                    }
                  ]
                }
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_layout_end"
          }
        ]
      }
    },
    "handler": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "handle"
        },
        {
          "type": "SYMBOL",
          "name": "_block"
        },
        {
          "type": "SYMBOL",
          "name": "with"
        },
        {
          "type": "SYMBOL",
          "name": "_block"
        }
      ]
    },
    "rewrite_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "rewrite"
        },
        {
          "type": "SYMBOL",
          "name": "_layout_start"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_rewrite_type"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_layout_semicolon"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_rewrite_type"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        }
      ]
    },
    "_rewrite_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "rewrite_term"
        },
        {
          "type": "SYMBOL",
          "name": "rewrite_case"
        },
        {
          "type": "SYMBOL",
          "name": "rewrite_type"
        }
      ]
    },
    "_rewrite_term_like": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_term"
        },
        {
          "type": "SYMBOL",
          "name": "rewrite_arrow"
        },
        {
          "type": "SYMBOL",
          "name": "_layout_start"
        },
        {
          "type": "SYMBOL",
          "name": "__layout_block"
        }
      ]
    },
    "rewrite_term": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "term"
        },
        {
          "type": "SYMBOL",
          "name": "_rewrite_term_like"
        }
      ]
    },
    "rewrite_case": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "case"
        },
        {
          "type": "SYMBOL",
          "name": "_rewrite_term_like"
        }
      ]
    },
    "rewrite_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "signature"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "REPEAT1",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_prefix_definition_name"
                  }
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "."
                  },
                  "named": true,
                  "value": "dot"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_computation_type"
        },
        {
          "type": "SYMBOL",
          "name": "rewrite_arrow"
        },
        {
          "type": "SYMBOL",
          "name": "_layout_start"
        },
        {
          "type": "SYMBOL",
          "name": "_computation_type"
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        }
      ]
    },
    "type_signature": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "term_name",
          "content": {
            "type": "SYMBOL",
            "name": "_prefix_definition_name"
          }
        },
        {
          "type": "SYMBOL",
          "name": "type_signature_colon"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_value_type"
          },
          "named": true,
          "value": "term_type"
        }
      ]
    },
    "type_declaration": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_type_lhs"
          },
          {
            "type": "SYMBOL",
            "name": "kw_equals"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_type_rhs"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "type_name": {
      "type": "SYMBOL",
      "name": "_identifier"
    },
    "type_argument": {
      "type": "TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[_a-z\\u{1f400}-\\u{1faff}][_!'a-z0-9\\u{1f400}-\\u{1faff}]*",
        "flags": "u"
      }
    },
    "type_constructor": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "type_name"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "type_argument"
            }
          }
        ]
      }
    },
    "_parenthetical_data_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "list_constructor"
            },
            {
              "type": "SYMBOL",
              "name": "tuple_constructor"
            },
            {
              "type": "SYMBOL",
              "name": "_standard_constructor"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "list_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "SYMBOL",
          "name": "_data_constructor"
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "tuple_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_data_constructor"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_data_constructor"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_standard_constructor": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "type_name"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "type_argument"
                },
                {
                  "type": "SYMBOL",
                  "name": "list_constructor"
                },
                {
                  "type": "SYMBOL",
                  "name": "tuple_constructor"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_parenthetical_data_constructor"
                  },
                  "named": true,
                  "value": "_data_constructor"
                }
              ]
            }
          }
        ]
      }
    },
    "_data_constructor": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "list_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "tuple_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "_standard_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "record"
          }
        ]
      }
    },
    "_type_lhs": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "structural"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "unique"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "type_kw"
        },
        {
          "type": "SYMBOL",
          "name": "type_constructor"
        }
      ]
    },
    "_type_rhs": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_value_type"
            },
            {
              "type": "SYMBOL",
              "name": "record"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "pipe"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_value_type"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "record"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "record": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "SYMBOL",
          "name": "_record_fields_block"
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "record_field": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "wordy_id"
          },
          "named": true,
          "value": "field_name"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "SYMBOL",
            "name": "_value_type"
          }
        }
      ]
    },
    "_record_fields_inline": {
      "type": "SEQ",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "record_field"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "record_field"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ","
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_record_fields_block": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_record_fields_inline"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_record_fields_inline"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_layout_semicolon"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_record_fields_inline"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_layout_end"
            }
          ]
        }
      ]
    },
    "_effect_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_layout_start"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_value_type"
                  },
                  "named": true,
                  "value": "effect"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "ALIAS",
                        "content": {
                          "type": "SYMBOL",
                          "name": "_value_type"
                        },
                        "named": true,
                        "value": "effect"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_layout_end"
        }
      ]
    },
    "_effect_inline": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_value_type"
          },
          "named": true,
          "value": "effect"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value_type"
                },
                "named": true,
                "value": "effect"
              }
            ]
          }
        }
      ]
    },
    "_effect_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_effect_inline"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "forall": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "kw_forall"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "wordy_id"
            },
            "named": true,
            "value": "regular_identifier"
          }
        },
        {
          "type": "STRING",
          "value": "."
        }
      ]
    },
    "_value_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "forall"
            },
            {
              "type": "SYMBOL",
              "name": "_type1"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_type1"
        }
      ]
    },
    "parenthesized": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_value_type"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "tuple_or_parenthesized_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_value_type"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_value_type"
                  }
                ]
              }
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_value_type_leaf": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "tuple_or_parenthesized_type"
        },
        {
          "type": "SYMBOL",
          "name": "_type_atom"
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        }
      ]
    },
    "immediate_hash": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "#[a-zA-Z0-9]+"
      }
    },
    "_type_atom": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_hash_qualified"
        },
        {
          "type": "SYMBOL",
          "name": "unit"
        }
      ]
    },
    "sequence_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_layout_start"
                },
                {
                  "type": "SYMBOL",
                  "name": "_value_type"
                },
                {
                  "type": "SYMBOL",
                  "name": "_layout_end"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_value_type"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "_type1": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_arrow"
        },
        {
          "type": "SYMBOL",
          "name": "_type2a"
        }
      ]
    },
    "_type2a": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "delayed"
        },
        {
          "type": "SYMBOL",
          "name": "_type2"
        }
      ]
    },
    "_type2": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_value_type_leaf"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_effect_list"
              },
              {
                "type": "SYMBOL",
                "name": "_value_type_leaf"
              }
            ]
          }
        }
      ]
    },
    "delayed": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "'"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_effect"
            },
            {
              "type": "SYMBOL",
              "name": "_type2a"
            }
          ]
        }
      ]
    },
    "arrow_symbol": {
      "type": "STRING",
      "value": "->"
    },
    "_effect": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_effect_list"
        },
        {
          "type": "SYMBOL",
          "name": "_type2"
        }
      ]
    },
    "_computation_type": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_effect"
          },
          {
            "type": "SYMBOL",
            "name": "_value_type"
          }
        ]
      }
    },
    "_arrow": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_value_type"
        },
        {
          "type": "SYMBOL",
          "name": "arrow_symbol"
        },
        {
          "type": "SYMBOL",
          "name": "_computation_type"
        }
      ]
    },
    "_ebody": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_identifier"
          },
          "named": true,
          "value": "ability_name"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "wordy_id"
            },
            "named": true,
            "value": "type_argument"
          }
        },
        {
          "type": "SYMBOL",
          "name": "where"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_layout_start"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "constructor"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_layout_semicolon"
                          },
                          {
                            "type": "SYMBOL",
                            "name": "constructor"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "_layout_end"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "constructor"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "constructor"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ]
    },
    "constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "wordy_id"
          },
          "named": true,
          "value": "constructor_name"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": ":"
          },
          "named": true,
          "value": "colon"
        },
        {
          "type": "FIELD",
          "name": "type",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_arrow"
              },
              {
                "type": "SYMBOL",
                "name": "_computation_type"
              }
            ]
          }
        }
      ]
    },
    "effect_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "structural"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "unique"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "ability"
        },
        {
          "type": "SYMBOL",
          "name": "_ebody"
        }
      ]
    },
    "use": {
      "type": "PREC",
      "value": 10,
      "content": {
        "type": "STRING",
        "value": "use"
      }
    },
    "use_clause": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "use"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_identifier"
            },
            "named": true,
            "value": "namespace"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "_identifier"
            }
          }
        ]
      }
    },
    "do": {
      "type": "STRING",
      "value": "do"
    },
    "kw_let": {
      "type": "STRING",
      "value": "let"
    },
    "type_kw": {
      "type": "STRING",
      "value": "type"
    },
    "pipe": {
      "type": "STRING",
      "value": "|"
    },
    "match": {
      "type": "STRING",
      "value": "match"
    },
    "cases": {
      "type": "STRING",
      "value": "cases"
    },
    "otherwise": {
      "type": "STRING",
      "value": "otherwise"
    },
    "as": {
      "type": "STRING",
      "value": "@"
    },
    "structural": {
      "type": "STRING",
      "value": "structural"
    },
    "unique": {
      "type": "STRING",
      "value": "unique"
    },
    "ability": {
      "type": "STRING",
      "value": "ability"
    },
    "where": {
      "type": "STRING",
      "value": "where"
    },
    "or": {
      "type": "STRING",
      "value": "||"
    },
    "and": {
      "type": "STRING",
      "value": "&&"
    },
    "kw_forall": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "forall"
        },
        {
          "type": "STRING",
          "value": "∀"
        }
      ]
    },
    "kw_equals": {
      "type": "STRING",
      "value": "="
    },
    "type_signature_colon": {
      "type": "STRING",
      "value": ":"
    },
    "kw_termlink": {
      "type": "STRING",
      "value": "termLink"
    },
    "kw_typelink": {
      "type": "STRING",
      "value": "typeLink"
    },
    "handle": {
      "type": "STRING",
      "value": "handle"
    },
    "with": {
      "type": "STRING",
      "value": "with"
    },
    "open_parens": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "STRING",
        "value": "("
      }
    },
    "close_parens": {
      "type": "STRING",
      "value": ")"
    },
    "rewrite": {
      "type": "STRING",
      "value": "@rewrite"
    },
    "term": {
      "type": "STRING",
      "value": "term"
    },
    "case": {
      "type": "STRING",
      "value": "case"
    },
    "signature": {
      "type": "STRING",
      "value": "signature"
    },
    "rewrite_arrow": {
      "type": "STRING",
      "value": "==>"
    },
    "wordy_id": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "PATTERN",
        "value": "[_a-z\\u{1f400}-\\u{1faff}]([_!'a-z0-9\\u{1f400}-\\u{1faff}])*",
        "flags": "iu"
      }
    },
    "imm_wordy_id": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[_a-z\\u{1f400}-\\u{1faff}]([_!'a-z0-9\\u{1f400}-\\u{1faff}])*",
        "flags": "iu"
      }
    },
    "symboly_id": {
      "type": "PATTERN",
      "value": "([$%^&*\\-+<>~\\\\\\/:])|((-[!$%^&*\\-=+<~\\\\\\/|:])|(&[!$%^*\\-=+<>~\\\\\\/|:])|([!$%^*\\-=+<>~\\\\\\/|:]&)|(\\|[!$%^&*\\-=+<>~\\\\\\/:])|([!$%^&*\\-=+<>~\\\\\\/:]\\|)|([!$%^*=+<>~\\\\\\/:]{2}))|([!$%^&*\\-=+<>~\\\\/|:]{3,})",
      "flags": "u"
    },
    "imm_symboly_id": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "([$%^&*\\-+<>~\\\\\\/:])|((-[!$%^&*\\-=+<~\\\\\\/|:])|(&[!$%^*\\-=+<>~\\\\\\/|:])|([!$%^*\\-=+<>~\\\\\\/|:]&)|(\\|[!$%^&*\\-=+<>~\\\\\\/:])|([!$%^&*\\-=+<>~\\\\\\/:]\\|)|([!$%^*=+<>~\\\\\\/:]{2}))|([!$%^&*\\-=+<>~\\\\/|:]{3,})",
        "flags": "u"
      }
    },
    "_identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "path"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "imm_wordy_id"
                  },
                  "named": true,
                  "value": "regular_identifier"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "imm_symboly_id"
                  },
                  "named": true,
                  "value": "operator"
                }
              ]
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "wordy_id"
          },
          "named": true,
          "value": "regular_identifier"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "symboly_id"
          },
          "named": true,
          "value": "operator"
        }
      ]
    },
    "path": {
      "type": "PATTERN",
      "value": "\\.?((([_a-zA-Z\\u{1f400}-\\u{1faff}][_!'a-zA-Z\\u{1f400}-\\u{1faff}]+)|([$%^&*\\-+<>~\\\\\\/:])|(-[!$%^&*\\-=+<~\\\\\\/|:])|([!$%^*=+<>~\\\\\\/:]{2})|(&[!$%^*\\-=+<>~\\\\\\/|:])|(\\|[!$%^&*\\-=+<>~\\\\\\/:])|([!$%^&*\\-=+<>~\\\\/|:]{3,}))\\.)+",
      "flags": "u"
    },
    "hash_qualifier": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "#[a-vA-V0-9]+"
          },
          "named": true,
          "value": "hash_prefix"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_dot"
              },
              "named": true,
              "value": "cyclic_index"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "hash_cid"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "imm_hash_qualifier": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "IMMEDIATE_TOKEN",
            "content": {
              "type": "PATTERN",
              "value": "#[a-zA-Z0-9]+"
            }
          },
          "named": true,
          "value": "hash_prefix"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_dot"
              },
              "named": true,
              "value": "cyclic_index"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "hash_cid"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_hash_qualified": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_identifier"
        },
        {
          "type": "SYMBOL",
          "name": "built_in_hash"
        },
        {
          "type": "SYMBOL",
          "name": "hash_qualifier"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_identifier"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "imm_hash_qualifier"
              },
              "named": true,
              "value": "hash_qualifier"
            }
          ]
        }
      ]
    },
    "_hq_qualified_wordy_id": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "built_in_hash"
          },
          {
            "type": "SYMBOL",
            "name": "hash_qualifier"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "wordy_id"
                    },
                    "named": true,
                    "value": "regular_identifier"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "path"
                      },
                      {
                        "type": "ALIAS",
                        "content": {
                          "type": "SYMBOL",
                          "name": "imm_wordy_id"
                        },
                        "named": true,
                        "value": "regular_identifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "imm_hash_qualifier"
                    },
                    "named": true,
                    "value": "hash_qualifier"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "_hq_qualified_symboly_id": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "symboly_id"
              },
              "named": true,
              "value": "operator"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "path"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "symboly_id"
                  },
                  "named": true,
                  "value": "operator"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "imm_hash_qualifier"
              },
              "named": true,
              "value": "hash_qualifier"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_hq_qualified_prefix_term": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_hq_qualified_wordy_id"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_layout_start"
            },
            {
              "type": "SYMBOL",
              "name": "_hq_qualified_symboly_id"
            },
            {
              "type": "SYMBOL",
              "name": "_layout_end"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_parenthesized_operator"
          },
          "named": true,
          "value": "prefix_operator"
        }
      ]
    },
    "_hq_qualified_infix_term": {
      "type": "SYMBOL",
      "name": "_hq_qualified_symboly_id"
    },
    "built_in_hash": {
      "type": "PATTERN",
      "value": "##\\S+"
    },
    "_prefix_definition_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_wordy_definition_name"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "open_parens"
            },
            {
              "type": "SYMBOL",
              "name": "_symboly_definition_name"
            },
            {
              "type": "SYMBOL",
              "name": "close_parens"
            }
          ]
        }
      ]
    },
    "_wordy_definition_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "wordy_id"
          },
          "named": true,
          "value": "regular_identifier"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "path"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "imm_wordy_id"
              },
              "named": true,
              "value": "regular_identifier"
            }
          ]
        }
      ]
    },
    "_symboly_definition_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "symboly_id"
          },
          "named": true,
          "value": "operator"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "path"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "imm_symboly_id"
              },
              "named": true,
              "value": "operator"
            }
          ]
        }
      ]
    },
    "_watch_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "doc_block"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_binding"
          },
          "named": true,
          "value": "term_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "_block_term"
        }
      ]
    },
    "watch_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_watch_start"
        },
        {
          "type": "SYMBOL",
          "name": "_watch_expression"
        }
      ]
    },
    "test_watch_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "test>"
            },
            {
              "type": "STRING",
              "value": "test.io>"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_watch_expression"
        }
      ]
    }
  },
  "extras": [
    {
      "type": "PATTERN",
      "value": "\\\\?\\s"
    },
    {
      "type": "SYMBOL",
      "name": "comment"
    }
  ],
  "conflicts": [
    [
      "_value_type"
    ],
    [
      "_type2"
    ],
    [
      "_type1",
      "constructor"
    ],
    [
      "_literal",
      "_expression"
    ],
    [
      "_literal",
      "_literal_pattern"
    ],
    [
      "literal_list",
      "literal_list_pattern"
    ],
    [
      "_pattern_rhs",
      "_boolean_exp"
    ],
    [
      "_hq_qualified_wordy_id",
      "_wordy_definition_name"
    ],
    [
      "_literal",
      "_term_leaf"
    ],
    [
      "_expression",
      "_term_leaf"
    ],
    [
      "_expression",
      "_keyword_block"
    ],
    [
      "_literal_pattern",
      "_number"
    ],
    [
      "_literal",
      "_number"
    ],
    [
      "_literal",
      "_link"
    ],
    [
      "_infix_app_or_boolean_op"
    ],
    [
      "_pattern_constructor",
      "effect_bind"
    ],
    [
      "_identifier",
      "_wordy_definition_name"
    ]
  ],
  "precedences": [
    [
      {
        "type": "STRING",
        "value": "_expression"
      },
      {
        "type": "STRING",
        "value": "identifier"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "term_definition"
      },
      {
        "type": "STRING",
        "value": "_expression"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "keyword"
      },
      {
        "type": "STRING",
        "value": "_expression"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "function_application"
      },
      {
        "type": "STRING",
        "value": "operator"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "_infix_op_application"
      },
      {
        "type": "STRING",
        "value": "_prefix_function_application"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "literal_function"
      },
      {
        "type": "STRING",
        "value": "function_application"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "_boolean_exp"
      },
      {
        "type": "STRING",
        "value": "literal_function"
      }
    ],
    [
      {
        "type": "STRING",
        "value": "constructor_or_variable_pattern"
      },
      {
        "type": "STRING",
        "value": "_lhs"
      }
    ]
  ],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "_layout_semicolon"
    },
    {
      "type": "SYMBOL",
      "name": "_layout_start"
    },
    {
      "type": "SYMBOL",
      "name": "_layout_end"
    },
    {
      "type": "SYMBOL",
      "name": "_dot"
    },
    {
      "type": "SYMBOL",
      "name": "_where"
    },
    {
      "type": "SYMBOL",
      "name": "_varsym"
    },
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "SYMBOL",
      "name": "fold"
    },
    {
      "type": "SYMBOL",
      "name": "_comma"
    },
    {
      "type": "SYMBOL",
      "name": "_in"
    },
    {
      "type": "SYMBOL",
      "name": "_indent"
    },
    {
      "type": "SYMBOL",
      "name": "_empty"
    },
    {
      "type": "SYMBOL",
      "name": "DEPRECATED_operator"
    },
    {
      "type": "SYMBOL",
      "name": "_parenthesized_operator"
    },
    {
      "type": "SYMBOL",
      "name": "_watch_start"
    },
    {
      "type": "SYMBOL",
      "name": "_start_before_arrow"
    },
    {
      "type": "SYMBOL",
      "name": "hash_cid"
    },
    {
      "type": "SYMBOL",
      "name": "doc_block"
    },
    {
      "type": "SYMBOL",
      "name": "_guard_layout_start"
    },
    {
      "type": "SYMBOL",
      "name": "_destructuring_bind_start"
    },
    {
      "type": "SYMBOL",
      "name": "DUMMY"
    }
  ],
  "inline": [],
  "supertypes": []
}
