{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "agda",
  "word": "id",
  "rules": {
    "source_file": {
      "type": "REPEAT",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_declaration"
          },
          {
            "type": "SYMBOL",
            "name": "_newline"
          }
        ]
      }
    },
    "_FORALL": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "forall"
        },
        {
          "type": "STRING",
          "value": "∀"
        }
      ]
    },
    "_ARROW": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "->"
        },
        {
          "type": "STRING",
          "value": "→"
        }
      ]
    },
    "_LAMBDA": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "\\"
        },
        {
          "type": "STRING",
          "value": "λ"
        }
      ]
    },
    "_ELLIPSIS": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "..."
        },
        {
          "type": "STRING",
          "value": "…"
        }
      ]
    },
    "_declaration_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_indent"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "_newline"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_dedent"
        }
      ]
    },
    "_declaration": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "fields"
        },
        {
          "type": "SYMBOL",
          "name": "function"
        },
        {
          "type": "SYMBOL",
          "name": "data"
        },
        {
          "type": "SYMBOL",
          "name": "data_signature"
        },
        {
          "type": "SYMBOL",
          "name": "record"
        },
        {
          "type": "SYMBOL",
          "name": "record_signature"
        },
        {
          "type": "SYMBOL",
          "name": "infix"
        },
        {
          "type": "SYMBOL",
          "name": "generalize"
        },
        {
          "type": "SYMBOL",
          "name": "mutual"
        },
        {
          "type": "SYMBOL",
          "name": "abstract"
        },
        {
          "type": "SYMBOL",
          "name": "private"
        },
        {
          "type": "SYMBOL",
          "name": "instance"
        },
        {
          "type": "SYMBOL",
          "name": "macro"
        },
        {
          "type": "SYMBOL",
          "name": "postulate"
        },
        {
          "type": "SYMBOL",
          "name": "primitive"
        },
        {
          "type": "SYMBOL",
          "name": "open"
        },
        {
          "type": "SYMBOL",
          "name": "import"
        },
        {
          "type": "SYMBOL",
          "name": "module_macro"
        },
        {
          "type": "SYMBOL",
          "name": "module"
        },
        {
          "type": "SYMBOL",
          "name": "pragma"
        },
        {
          "type": "SYMBOL",
          "name": "syntax"
        },
        {
          "type": "SYMBOL",
          "name": "pattern"
        },
        {
          "type": "SYMBOL",
          "name": "unquote_decl"
        }
      ]
    },
    "fields": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "field"
        },
        {
          "type": "SYMBOL",
          "name": "_signature_block"
        }
      ]
    },
    "_signature_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_indent"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "signature"
              },
              {
                "type": "SYMBOL",
                "name": "_newline"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_dedent"
        }
      ]
    },
    "signature": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": "overlap"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_modal_arg_ids"
            },
            {
              "type": "STRING",
              "value": ":"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "instance"
            },
            {
              "type": "SYMBOL",
              "name": "_signature_block"
            }
          ]
        }
      ]
    },
    "_modal_arg_ids": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "attribute"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_arg_ids"
        }
      ]
    },
    "function": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "attributes"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "lhs_decl"
              },
              "named": true,
              "value": "lhs"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "rhs_decl"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              "named": true,
              "value": "rhs"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "where"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "attributes"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "lhs_defn"
              },
              "named": true,
              "value": "lhs"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "rhs_defn"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              "named": true,
              "value": "rhs"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "where"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "lhs_decl": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_with_exprs"
          },
          "named": true,
          "value": "function_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "rewrite_equations"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "with_expressions"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "lhs_defn": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_with_exprs"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "rewrite_equations"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "with_expressions"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "rhs_decl": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "rhs_defn": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "with_expressions": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "with"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "rewrite_equations": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "rewrite"
        },
        {
          "type": "SYMBOL",
          "name": "_with_exprs"
        }
      ]
    },
    "where": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "module"
                },
                {
                  "type": "SYMBOL",
                  "name": "bid"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "data_name": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "id"
      },
      "named": false,
      "value": "data_name"
    },
    "data": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "data"
            },
            {
              "type": "STRING",
              "value": "codata"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "data_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":"
                },
                {
                  "type": "SYMBOL",
                  "name": "expr"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "data_signature": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "data"
        },
        {
          "type": "SYMBOL",
          "name": "data_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "record": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "record"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_atom_no_curly"
          },
          "named": true,
          "value": "record_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":"
                },
                {
                  "type": "SYMBOL",
                  "name": "expr"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "record_declarations_block"
        }
      ]
    },
    "record_declarations_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_record_directive"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  }
                ]
              }
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_declaration"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  }
                ]
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "_record_directive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "record_constructor"
        },
        {
          "type": "SYMBOL",
          "name": "record_constructor_instance"
        },
        {
          "type": "SYMBOL",
          "name": "record_induction"
        },
        {
          "type": "SYMBOL",
          "name": "record_eta"
        }
      ]
    },
    "record_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "constructor"
        },
        {
          "type": "SYMBOL",
          "name": "id"
        }
      ]
    },
    "record_constructor_instance": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "instance"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT1",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "record_constructor"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  }
                ]
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "record_induction": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "inductive"
        },
        {
          "type": "STRING",
          "value": "coinductive"
        }
      ]
    },
    "record_eta": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "eta-equality"
        },
        {
          "type": "STRING",
          "value": "no-eta-equality"
        }
      ]
    },
    "record_signature": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "record"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_atom_no_curly"
          },
          "named": true,
          "value": "record_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "infix": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "infix"
            },
            {
              "type": "STRING",
              "value": "infixl"
            },
            {
              "type": "STRING",
              "value": "infixr"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "integer"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SYMBOL",
            "name": "bid"
          }
        }
      ]
    },
    "generalize": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "variable"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_signature_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "mutual": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "mutual"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "abstract": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "abstract"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "private": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "private"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "instance": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "instance"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "macro": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "macro"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "postulate": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "postulate"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "primitive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "primitive"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_type_signature_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_type_signature_block": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_indent"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "type_signature"
              },
              {
                "type": "SYMBOL",
                "name": "_newline"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_dedent"
        }
      ]
    },
    "type_signature": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_field_names"
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "open": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "open"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "import"
            },
            {
              "type": "SYMBOL",
              "name": "module_name"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_import_directives"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "import"
        },
        {
          "type": "SYMBOL",
          "name": "module_name"
        }
      ]
    },
    "module_name": {
      "type": "SYMBOL",
      "name": "_qid"
    },
    "_import_directives": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "import_directive"
      }
    },
    "import_directive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "public"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "using"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_comma_import_names"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "hiding"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_comma_import_names"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "renaming"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "renaming"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ";"
                      },
                      {
                        "type": "SYMBOL",
                        "name": "renaming"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "using"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "hiding"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "renaming"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        }
      ]
    },
    "_comma_import_names": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_import_name"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ";"
              },
              {
                "type": "SYMBOL",
                "name": "_import_name"
              }
            ]
          }
        }
      ]
    },
    "renaming": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "module"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "STRING",
          "value": "to"
        },
        {
          "type": "SYMBOL",
          "name": "id"
        }
      ]
    },
    "_import_name": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "module"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "id"
        }
      ]
    },
    "module_macro": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "module"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_qid"
                  },
                  "named": true,
                  "value": "module_name"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "open"
                },
                {
                  "type": "STRING",
                  "value": "module"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_qid"
                  },
                  "named": true,
                  "value": "module_name"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "module_application"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "import_directive"
          }
        }
      ]
    },
    "module_application": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "module_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "PREC",
              "value": 1,
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "{{"
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_ELLIPSIS"
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": "}}"
                      }
                    ]
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": "⦃"
                      },
                      {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "_ELLIPSIS"
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": "⦄"
                      }
                    ]
                  }
                ]
              }
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_atoms"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "module": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "module"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_qid"
              },
              {
                "type": "STRING",
                "value": "_"
              }
            ]
          },
          "named": true,
          "value": "module_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_declaration_block"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "pragma": {
      "type": "TOKEN",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "{-#"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "PATTERN",
                  "value": "[^#]"
                },
                {
                  "type": "PATTERN",
                  "value": "#[^-]"
                },
                {
                  "type": "PATTERN",
                  "value": "#\\-[^}]"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "#-}"
          }
        ]
      }
    },
    "catchall_pragma": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{-#"
        },
        {
          "type": "STRING",
          "value": "CATCHALL"
        },
        {
          "type": "STRING",
          "value": "#-}"
        }
      ]
    },
    "syntax": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "syntax"
        },
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "SYMBOL",
          "name": "hole_names"
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "SYMBOL",
            "name": "id"
          }
        }
      ]
    },
    "hole_names": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "hole_name"
      }
    },
    "hole_name": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_simple_top_hole"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "id"
                    },
                    {
                      "type": "STRING",
                      "value": "="
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "id"
                    },
                    {
                      "type": "STRING",
                      "value": "="
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "id"
                    },
                    {
                      "type": "STRING",
                      "value": "="
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_simple_hole"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        }
      ]
    },
    "_simple_top_hole": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_LAMBDA"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "bid"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_ARROW"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "id"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        }
      ]
    },
    "_simple_hole": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_LAMBDA"
            },
            {
              "type": "SYMBOL",
              "name": "bid"
            },
            {
              "type": "SYMBOL",
              "name": "_ARROW"
            },
            {
              "type": "SYMBOL",
              "name": "id"
            }
          ]
        }
      ]
    },
    "pattern": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "pattern"
        },
        {
          "type": "SYMBOL",
          "name": "id"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_lambda_bindings"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "unquote_decl": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "unquoteDecl"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "unquoteDecl"
            },
            {
              "type": "SYMBOL",
              "name": "_ids"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "unquoteDef"
            },
            {
              "type": "SYMBOL",
              "name": "_ids"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        }
      ]
    },
    "id": {
      "type": "PATTERN",
      "value": "([^\\s\\\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*"
    },
    "_qid": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "PATTERN",
              "value": "(([^\\s;\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*\\.)*([^\\s;\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*"
            },
            "named": true,
            "value": "qid"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "id"
            },
            "named": true,
            "value": "qid"
          }
        ]
      }
    },
    "bid": {
      "type": "ALIAS",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "_"
          },
          {
            "type": "SYMBOL",
            "name": "id"
          }
        ]
      },
      "named": false,
      "value": "bid"
    },
    "_ids": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "id"
      }
    },
    "_field_name": {
      "type": "ALIAS",
      "content": {
        "type": "SYMBOL",
        "name": "id"
      },
      "named": true,
      "value": "field_name"
    },
    "_field_names": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_field_name"
      }
    },
    "_maybe_dotted_id": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_field_name"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "."
            },
            {
              "type": "SYMBOL",
              "name": "_field_name"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": ".."
            },
            {
              "type": "SYMBOL",
              "name": "_field_name"
            }
          ]
        }
      ]
    },
    "_maybe_dotted_ids": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_maybe_dotted_id"
      }
    },
    "_arg_ids": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_arg_id"
      }
    },
    "_arg_id": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_maybe_dotted_id"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_maybe_dotted_ids"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_maybe_dotted_ids"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_maybe_dotted_ids"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "."
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "."
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}}"
                    }
                  ]
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "⦃"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "⦄"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": ".."
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": ".."
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}}"
                    }
                  ]
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "⦃"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_names"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "⦄"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    "_binding_ids_and_absurds": {
      "type": "PREC",
      "value": -1,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_application"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_qid"
              },
              {
                "type": "STRING",
                "value": "="
              },
              {
                "type": "SYMBOL",
                "name": "_qid"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_qid"
              },
              {
                "type": "STRING",
                "value": "="
              },
              {
                "type": "STRING",
                "value": "_"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "-"
              },
              {
                "type": "STRING",
                "value": "="
              },
              {
                "type": "SYMBOL",
                "name": "_qid"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "-"
              },
              {
                "type": "STRING",
                "value": "="
              },
              {
                "type": "STRING",
                "value": "_"
              }
            ]
          }
        ]
      }
    },
    "attribute": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "@"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_or_attr"
        }
      ]
    },
    "attributes": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "attribute"
      }
    },
    "expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_bindings"
            },
            {
              "type": "SYMBOL",
              "name": "_ARROW"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "attributes"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "SYMBOL",
              "name": "_ARROW"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_with_exprs"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "PREC",
          "value": -1,
          "content": {
            "type": "SYMBOL",
            "name": "_with_exprs"
          }
        }
      ]
    },
    "stmt": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_bindings"
            },
            {
              "type": "SYMBOL",
              "name": "_ARROW"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "attributes"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "SYMBOL",
              "name": "_ARROW"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_with_exprs"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "PREC",
          "value": -1,
          "content": {
            "type": "SYMBOL",
            "name": "_with_exprs_stmt"
          }
        }
      ]
    },
    "_with_exprs": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_atoms"
              },
              {
                "type": "STRING",
                "value": "|"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_application"
        }
      ]
    },
    "_with_exprs_stmt": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_atoms"
              },
              {
                "type": "STRING",
                "value": "|"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_application_stmt"
        }
      ]
    },
    "_expr_or_attr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "literal"
        },
        {
          "type": "SYMBOL",
          "name": "_qid"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        }
      ]
    },
    "_application": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_expr2"
        }
      ]
    },
    "_application_stmt": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_expr2_stmt"
        }
      ]
    },
    "_expr2_without_let": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "lambda"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "lambda_extended_or_absurd"
          },
          "named": true,
          "value": "lambda"
        },
        {
          "type": "SYMBOL",
          "name": "forall"
        },
        {
          "type": "SYMBOL",
          "name": "do"
        },
        {
          "type": "PREC",
          "value": -1,
          "content": {
            "type": "SYMBOL",
            "name": "atom"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "quoteGoal"
            },
            {
              "type": "SYMBOL",
              "name": "id"
            },
            {
              "type": "STRING",
              "value": "in"
            },
            {
              "type": "SYMBOL",
              "name": "expr"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "tactic"
            },
            {
              "type": "SYMBOL",
              "name": "_atoms"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "tactic"
            },
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "STRING",
              "value": "|"
            },
            {
              "type": "SYMBOL",
              "name": "_with_exprs"
            }
          ]
        }
      ]
    },
    "_expr2": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_expr2_without_let"
        },
        {
          "type": "SYMBOL",
          "name": "let"
        }
      ]
    },
    "_expr2_stmt": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_expr2_without_let"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "let_in_do"
          },
          "named": true,
          "value": "let"
        }
      ]
    },
    "atom": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_atom_curly"
        },
        {
          "type": "SYMBOL",
          "name": "_atom_no_curly"
        }
      ]
    },
    "_atoms": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "atom"
      }
    },
    "_atom_curly": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        }
      ]
    },
    "_atom_no_curly": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "_"
        },
        {
          "type": "STRING",
          "value": "Prop"
        },
        {
          "type": "SYMBOL",
          "name": "SetN"
        },
        {
          "type": "STRING",
          "value": "quote"
        },
        {
          "type": "STRING",
          "value": "quoteTerm"
        },
        {
          "type": "STRING",
          "value": "quoteContext"
        },
        {
          "type": "STRING",
          "value": "unquote"
        },
        {
          "type": "SYMBOL",
          "name": "PropN"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "(|"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "|)"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦇"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦈"
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{{"
            },
            {
              "type": "STRING",
              "value": "}}"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "⦃"
            },
            {
              "type": "STRING",
              "value": "⦄"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "id"
            },
            {
              "type": "STRING",
              "value": "@"
            },
            {
              "type": "SYMBOL",
              "name": "atom"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "."
            },
            {
              "type": "SYMBOL",
              "name": "atom"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "record_assignments"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "field_assignments"
          },
          "named": true,
          "value": "record_assignments"
        },
        {
          "type": "SYMBOL",
          "name": "_ELLIPSIS"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_or_attr"
        }
      ]
    },
    "forall": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_FORALL"
        },
        {
          "type": "SYMBOL",
          "name": "_typed_untyped_bindings"
        },
        {
          "type": "SYMBOL",
          "name": "_ARROW"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "let": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "let"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_indent"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_declaration"
                },
                {
                  "type": "SYMBOL",
                  "name": "_newline"
                }
              ]
            }
          },
          {
            "type": "SYMBOL",
            "name": "_declaration"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_newline"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_let_body"
          }
        ]
      }
    },
    "let_in_do": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "let"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_indent"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_declaration"
                },
                {
                  "type": "SYMBOL",
                  "name": "_newline"
                }
              ]
            }
          },
          {
            "type": "SYMBOL",
            "name": "_declaration"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_dedent"
                  }
                ]
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_let_body"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_let_body"
              }
            ]
          }
        ]
      }
    },
    "_let_body": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "in"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "lambda": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_LAMBDA"
        },
        {
          "type": "SYMBOL",
          "name": "_lambda_bindings"
        },
        {
          "type": "SYMBOL",
          "name": "_ARROW"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "_lambda_bindings": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_typed_untyped_binding"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_typed_untyped_binding"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        }
      ]
    },
    "lambda_extended_or_absurd": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_LAMBDA"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "lambda_clause"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}"
                    }
                  ]
                }
              ]
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "{"
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_lambda_clauses"
                        }
                      ]
                    },
                    {
                      "type": "STRING",
                      "value": "}"
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "where"
                },
                {
                  "type": "SYMBOL",
                  "name": "_lambda_clauses"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_lambda_bindings"
            }
          ]
        }
      ]
    },
    "_lambda_clauses": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_lambda_clause_maybe_absurd"
                },
                {
                  "type": "STRING",
                  "value": ";"
                }
              ]
            }
          },
          {
            "type": "SYMBOL",
            "name": "_lambda_clause_maybe_absurd"
          }
        ]
      }
    },
    "_lambda_clause_maybe_absurd": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "lambda_clause_absurd"
          },
          {
            "type": "SYMBOL",
            "name": "lambda_clause"
          }
        ]
      }
    },
    "lambda_clause_absurd": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "catchall_pragma"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_application"
        }
      ]
    },
    "lambda_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "catchall_pragma"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_ARROW"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "do": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "do"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_indent"
            },
            {
              "type": "REPEAT1",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_do_stmt"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_newline"
                  }
                ]
              }
            },
            {
              "type": "SYMBOL",
              "name": "_dedent"
            }
          ]
        }
      ]
    },
    "_do_stmt": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "stmt"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "do_where"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "do_where": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "SYMBOL",
          "name": "_lambda_clauses"
        }
      ]
    },
    "record_assignments": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "record"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_record_assignments"
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        }
      ]
    },
    "field_assignments": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "record"
        },
        {
          "type": "SYMBOL",
          "name": "_atom_no_curly"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "_field_assignments"
                        },
                        {
                          "type": "BLANK"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        }
      ]
    },
    "_record_assignments": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_record_assignment"
              },
              {
                "type": "STRING",
                "value": ";"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "_record_assignment"
        }
      ]
    },
    "_field_assignments": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "field_assignment"
              },
              {
                "type": "STRING",
                "value": ";"
              }
            ]
          }
        },
        {
          "type": "SYMBOL",
          "name": "field_assignment"
        }
      ]
    },
    "_record_assignment": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "field_assignment"
        },
        {
          "type": "SYMBOL",
          "name": "module_assignment"
        }
      ]
    },
    "field_assignment": {
      "type": "SEQ",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "id"
          },
          "named": true,
          "value": "field_name"
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "module_assignment": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "module_name"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_atoms"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_import_directives"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "_typed_bindings": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "typed_binding"
      }
    },
    "typed_binding": {
      "type": "CHOICE",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "("
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_application"
                            },
                            {
                              "type": "STRING",
                              "value": ":"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "expr"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": ")"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "{"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            },
                            {
                              "type": "STRING",
                              "value": ":"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "expr"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "}"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "{{"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            },
                            {
                              "type": "STRING",
                              "value": ":"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "expr"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "}}"
                        }
                      ]
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "⦃"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            },
                            {
                              "type": "STRING",
                              "value": ":"
                            },
                            {
                              "type": "SYMBOL",
                              "name": "expr"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "⦄"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "."
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "("
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_application"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": ")"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}}"
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "⦃"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "⦄"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ".."
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "("
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_application"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": ")"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}}"
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "⦃"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                },
                                {
                                  "type": "STRING",
                                  "value": ":"
                                },
                                {
                                  "type": "SYMBOL",
                                  "name": "expr"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "⦄"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_application"
                    },
                    {
                      "type": "STRING",
                      "value": ":"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    },
                    {
                      "type": "STRING",
                      "value": ":"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    },
                    {
                      "type": "STRING",
                      "value": ":"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    },
                    {
                      "type": "STRING",
                      "value": ":"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "expr"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "open"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "let"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_declaration_block"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        }
      ]
    },
    "_typed_untyped_bindings": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_typed_untyped_binding"
      }
    },
    "_typed_untyped_binding": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "untyped_binding"
        },
        {
          "type": "SYMBOL",
          "name": "typed_binding"
        }
      ]
    },
    "untyped_binding": {
      "type": "CHOICE",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "bid"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "{"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "}"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "{{"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "}}"
                        }
                      ]
                    },
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "⦃"
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "SYMBOL",
                              "name": "_binding_ids_and_absurds"
                            }
                          ]
                        },
                        {
                          "type": "STRING",
                          "value": "⦄"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "."
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "bid"
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}}"
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "⦃"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "⦄"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ".."
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "bid"
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "{{"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "}}"
                            }
                          ]
                        },
                        {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": "⦃"
                            },
                            {
                              "type": "SEQ",
                              "members": [
                                {
                                  "type": "SYMBOL",
                                  "name": "_binding_ids_and_absurds"
                                }
                              ]
                            },
                            {
                              "type": "STRING",
                              "value": "⦄"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{{"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "}}"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "⦃"
                },
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "attributes"
                    },
                    {
                      "type": "SYMBOL",
                      "name": "_binding_ids_and_absurds"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": "⦄"
                }
              ]
            }
          ]
        }
      ]
    },
    "integer": {
      "type": "PATTERN",
      "value": "\\-?(0x[0-9a-fA-F]+|[0-9]+)"
    },
    "string": {
      "type": "PATTERN",
      "value": "\\\".*\\\""
    },
    "literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PATTERN",
          "value": "\\-?(0x[0-9a-fA-F]+|[0-9]+)"
        },
        {
          "type": "PATTERN",
          "value": "\\\".*\\\""
        }
      ]
    },
    "comment": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "PREC",
            "value": 100,
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "--"
                },
                {
                  "type": "PATTERN",
                  "value": ".*"
                }
              ]
            }
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "{--}"
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "{-"
              },
              {
                "type": "PATTERN",
                "value": "[^#]"
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "PATTERN",
                      "value": "[^-]"
                    },
                    {
                      "type": "PATTERN",
                      "value": "-[^}]"
                    }
                  ]
                }
              },
              {
                "type": "PATTERN",
                "value": "-}"
              }
            ]
          }
        ]
      }
    },
    "SetN": {
      "type": "PREC_RIGHT",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "Set"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "atom"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "PropN": {
      "type": "STRING",
      "value": "propN"
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "SYMBOL",
      "name": "pragma"
    },
    {
      "type": "PATTERN",
      "value": "\\s|\\\\n"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "_newline"
    },
    {
      "type": "SYMBOL",
      "name": "_indent"
    },
    {
      "type": "SYMBOL",
      "name": "_dedent"
    }
  ],
  "inline": [],
  "supertypes": [],
  "reserved": {}
}