[
  {
    "type": "_data_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_data_constructor",
          "named": true
        },
        {
          "type": "list_constructor",
          "named": true
        },
        {
          "type": "tuple_constructor",
          "named": true
        },
        {
          "type": "type_argument",
          "named": true
        },
        {
          "type": "type_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ability_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "ability",
          "named": true
        },
        {
          "type": "ability_name",
          "named": true
        },
        {
          "type": "constructor",
          "named": true
        },
        {
          "type": "structural",
          "named": true
        },
        {
          "type": "type_argument",
          "named": true
        },
        {
          "type": "unique",
          "named": true
        },
        {
          "type": "where",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ability_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "arrow_symbol",
    "named": true,
    "fields": {}
  },
  {
    "type": "bang",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "close_parens",
    "named": true,
    "fields": {}
  },
  {
    "type": "constructor",
    "named": true,
    "fields": {
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "colon",
          "named": true
        },
        {
          "type": "constructor_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "ctor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "delay_block",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "do",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "delay_quote",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "delayed",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "destructuring_bind",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "kw_equals",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "effect",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "effect_bind",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "concat",
          "named": true
        },
        {
          "type": "cons",
          "named": true
        },
        {
          "type": "ctor",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "snoc",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "effect_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "effect_bind",
          "named": true
        },
        {
          "type": "effect_pure",
          "named": true
        }
      ]
    }
  },
  {
    "type": "effect_pure",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "concat",
          "named": true
        },
        {
          "type": "cons",
          "named": true
        },
        {
          "type": "ctor",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "snoc",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "exp_if",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "kw_else",
          "named": true
        },
        {
          "type": "kw_if",
          "named": true
        },
        {
          "type": "kw_then",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "exp_let",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "kw_let",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "forall",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "kw_forall",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "force",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "guard",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "otherwise",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "guarded_block",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "guard",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "handler",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handle",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "hash_qualifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "cyclic_index",
          "named": true
        },
        {
          "type": "hash_cid",
          "named": true
        },
        {
          "type": "hash_prefix",
          "named": true
        }
      ]
    }
  },
  {
    "type": "kw_else",
    "named": true,
    "fields": {}
  },
  {
    "type": "kw_forall",
    "named": true,
    "fields": {}
  },
  {
    "type": "kw_if",
    "named": true,
    "fields": {}
  },
  {
    "type": "kw_then",
    "named": true,
    "fields": {}
  },
  {
    "type": "list_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_data_constructor",
          "named": true
        },
        {
          "type": "list_constructor",
          "named": true
        },
        {
          "type": "record",
          "named": true
        },
        {
          "type": "tuple_constructor",
          "named": true
        },
        {
          "type": "type_argument",
          "named": true
        },
        {
          "type": "type_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "literal_boolean",
    "named": true,
    "fields": {}
  },
  {
    "type": "literal_char",
    "named": true,
    "fields": {}
  },
  {
    "type": "literal_function",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "close_parens",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "open_parens",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "literal_list",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "close_bracket",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "open_bracket",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "literal_list_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "comma",
          "named": true
        },
        {
          "type": "concat",
          "named": true
        },
        {
          "type": "cons",
          "named": true
        },
        {
          "type": "ctor",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "snoc",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "literal_termlink",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "kw_termlink",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "literal_text",
    "named": true,
    "fields": {}
  },
  {
    "type": "literal_typelink",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "kw_typelink",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "open_parens",
    "named": true,
    "fields": {}
  },
  {
    "type": "parenthesized_or_tuple_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "close_parens",
          "named": true
        },
        {
          "type": "comma",
          "named": true
        },
        {
          "type": "concat",
          "named": true
        },
        {
          "type": "cons",
          "named": true
        },
        {
          "type": "ctor",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "open_parens",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "snoc",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthetical_exp",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "parenthetical_exp",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pattern",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "concat",
          "named": true
        },
        {
          "type": "cons",
          "named": true
        },
        {
          "type": "ctor",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "guarded_block",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "snoc",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "record_field",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_field",
    "named": true,
    "fields": {
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "field_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "regular_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "rewrite_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "rewrite",
          "named": true
        },
        {
          "type": "rewrite_case",
          "named": true
        },
        {
          "type": "rewrite_term",
          "named": true
        },
        {
          "type": "rewrite_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rewrite_case",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "case",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_arrow",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rewrite_term",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_arrow",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "term",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rewrite_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "close_parens",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "open_parens",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_arrow",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "signature",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "sequence_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "term_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "term_definition",
          "named": true
        },
        {
          "type": "type_signature",
          "named": true
        }
      ]
    }
  },
  {
    "type": "term_definition",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "close_parens",
            "named": true
          },
          {
            "type": "open_parens",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          }
        ]
      },
      "param": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "close_parens",
            "named": true
          },
          {
            "type": "open_parens",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          }
        ]
      },
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "destructuring_bind",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "kw_equals",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "term_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "test_watch_expression",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tuple_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_data_constructor",
          "named": true
        },
        {
          "type": "list_constructor",
          "named": true
        },
        {
          "type": "record",
          "named": true
        },
        {
          "type": "tuple_constructor",
          "named": true
        },
        {
          "type": "type_argument",
          "named": true
        },
        {
          "type": "type_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tuple_or_parenthesized",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tuple_or_parenthesized_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_argument",
    "named": true,
    "fields": {}
  },
  {
    "type": "type_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_argument",
          "named": true
        },
        {
          "type": "type_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arrow_symbol",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "delayed",
          "named": true
        },
        {
          "type": "effect",
          "named": true
        },
        {
          "type": "forall",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "kw_equals",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "record",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "sequence_type",
          "named": true
        },
        {
          "type": "structural",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized_type",
          "named": true
        },
        {
          "type": "type_constructor",
          "named": true
        },
        {
          "type": "type_kw",
          "named": true
        },
        {
          "type": "unique",
          "named": true
        },
        {
          "type": "unit",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_signature",
    "named": true,
    "fields": {
      "term_name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "close_parens",
            "named": true
          },
          {
            "type": "open_parens",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "term_type",
          "named": true
        },
        {
          "type": "type_signature_colon",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_signature_colon",
    "named": true,
    "fields": {}
  },
  {
    "type": "unison",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "ability_declaration",
          "named": true
        },
        {
          "type": "fold",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "test_watch_expression",
          "named": true
        },
        {
          "type": "type_declaration",
          "named": true
        },
        {
          "type": "use_clause",
          "named": true
        },
        {
          "type": "watch_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unit",
    "named": true,
    "fields": {}
  },
  {
    "type": "use",
    "named": true,
    "fields": {}
  },
  {
    "type": "use_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "namespace",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "use",
          "named": true
        }
      ]
    }
  },
  {
    "type": "var_or_as",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "at_token",
          "named": true
        },
        {
          "type": "blank_pattern",
          "named": true
        },
        {
          "type": "effect_pattern",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_list_pattern",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "parenthesized_or_tuple_pattern",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "var_or_as",
          "named": true
        },
        {
          "type": "var_or_nullary_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "var_or_nullary_ctor",
    "named": true,
    "fields": {}
  },
  {
    "type": "watch_expression",
    "named": true,
    "fields": {
      "scrutinee": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "and",
            "named": true
          },
          {
            "type": "arrow_symbol",
            "named": true
          },
          {
            "type": "bang",
            "named": true
          },
          {
            "type": "built_in_hash",
            "named": true
          },
          {
            "type": "cases",
            "named": true
          },
          {
            "type": "delay_block",
            "named": true
          },
          {
            "type": "delay_quote",
            "named": true
          },
          {
            "type": "delayed",
            "named": true
          },
          {
            "type": "doc_block",
            "named": true
          },
          {
            "type": "effect",
            "named": true
          },
          {
            "type": "exp_if",
            "named": true
          },
          {
            "type": "exp_let",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "forall",
            "named": true
          },
          {
            "type": "force",
            "named": true
          },
          {
            "type": "handler",
            "named": true
          },
          {
            "type": "hash_qualifier",
            "named": true
          },
          {
            "type": "int",
            "named": true
          },
          {
            "type": "literal_boolean",
            "named": true
          },
          {
            "type": "literal_byte",
            "named": true
          },
          {
            "type": "literal_char",
            "named": true
          },
          {
            "type": "literal_function",
            "named": true
          },
          {
            "type": "literal_hex",
            "named": true
          },
          {
            "type": "literal_list",
            "named": true
          },
          {
            "type": "literal_termlink",
            "named": true
          },
          {
            "type": "literal_text",
            "named": true
          },
          {
            "type": "literal_typelink",
            "named": true
          },
          {
            "type": "match",
            "named": true
          },
          {
            "type": "nat",
            "named": true
          },
          {
            "type": "operator",
            "named": true
          },
          {
            "type": "or",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          },
          {
            "type": "prefix_operator",
            "named": true
          },
          {
            "type": "regular_identifier",
            "named": true
          },
          {
            "type": "rewrite_block",
            "named": true
          },
          {
            "type": "sequence_type",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized",
            "named": true
          },
          {
            "type": "tuple_or_parenthesized_type",
            "named": true
          },
          {
            "type": "type_signature_colon",
            "named": true
          },
          {
            "type": "unit",
            "named": true
          },
          {
            "type": "with",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "and",
          "named": true
        },
        {
          "type": "bang",
          "named": true
        },
        {
          "type": "built_in_hash",
          "named": true
        },
        {
          "type": "cases",
          "named": true
        },
        {
          "type": "delay_block",
          "named": true
        },
        {
          "type": "delay_quote",
          "named": true
        },
        {
          "type": "doc_block",
          "named": true
        },
        {
          "type": "exp_if",
          "named": true
        },
        {
          "type": "exp_let",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "force",
          "named": true
        },
        {
          "type": "handler",
          "named": true
        },
        {
          "type": "hash_qualifier",
          "named": true
        },
        {
          "type": "int",
          "named": true
        },
        {
          "type": "literal_boolean",
          "named": true
        },
        {
          "type": "literal_byte",
          "named": true
        },
        {
          "type": "literal_char",
          "named": true
        },
        {
          "type": "literal_function",
          "named": true
        },
        {
          "type": "literal_hex",
          "named": true
        },
        {
          "type": "literal_list",
          "named": true
        },
        {
          "type": "literal_termlink",
          "named": true
        },
        {
          "type": "literal_text",
          "named": true
        },
        {
          "type": "literal_typelink",
          "named": true
        },
        {
          "type": "match",
          "named": true
        },
        {
          "type": "nat",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "or",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "regular_identifier",
          "named": true
        },
        {
          "type": "rewrite_block",
          "named": true
        },
        {
          "type": "term_declaration",
          "named": true
        },
        {
          "type": "tuple_or_parenthesized",
          "named": true
        },
        {
          "type": "with",
          "named": true
        }
      ]
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "\"\"\"",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": "()",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "ability",
    "named": true
  },
  {
    "type": "and",
    "named": true
  },
  {
    "type": "at_token",
    "named": true
  },
  {
    "type": "blank_pattern",
    "named": true
  },
  {
    "type": "built_in_hash",
    "named": true
  },
  {
    "type": "case",
    "named": true
  },
  {
    "type": "cases",
    "named": true
  },
  {
    "type": "close_bracket",
    "named": true
  },
  {
    "type": "colon",
    "named": true
  },
  {
    "type": "comma",
    "named": true
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "concat",
    "named": true
  },
  {
    "type": "cons",
    "named": true
  },
  {
    "type": "cyclic_index",
    "named": true
  },
  {
    "type": "do",
    "named": true
  },
  {
    "type": "doc_block",
    "named": true
  },
  {
    "type": "dot",
    "named": true
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "float",
    "named": true
  },
  {
    "type": "fold",
    "named": true
  },
  {
    "type": "forall",
    "named": false
  },
  {
    "type": "handle",
    "named": true
  },
  {
    "type": "hash_cid",
    "named": true
  },
  {
    "type": "hash_prefix",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "int",
    "named": true
  },
  {
    "type": "kw_equals",
    "named": true
  },
  {
    "type": "kw_let",
    "named": true
  },
  {
    "type": "kw_termlink",
    "named": true
  },
  {
    "type": "kw_typelink",
    "named": true
  },
  {
    "type": "literal_byte",
    "named": true
  },
  {
    "type": "literal_hex",
    "named": true
  },
  {
    "type": "match",
    "named": true
  },
  {
    "type": "nat",
    "named": true
  },
  {
    "type": "open_bracket",
    "named": true
  },
  {
    "type": "operator",
    "named": true
  },
  {
    "type": "or",
    "named": true
  },
  {
    "type": "otherwise",
    "named": true
  },
  {
    "type": "path",
    "named": true
  },
  {
    "type": "pipe",
    "named": true
  },
  {
    "type": "prefix_operator",
    "named": true
  },
  {
    "type": "rewrite",
    "named": true
  },
  {
    "type": "rewrite_arrow",
    "named": true
  },
  {
    "type": "signature",
    "named": true
  },
  {
    "type": "snoc",
    "named": true
  },
  {
    "type": "structural",
    "named": true
  },
  {
    "type": "term",
    "named": true
  },
  {
    "type": "test.io>",
    "named": false
  },
  {
    "type": "test>",
    "named": false
  },
  {
    "type": "then",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "type_kw",
    "named": true
  },
  {
    "type": "unique",
    "named": true
  },
  {
    "type": "use",
    "named": false
  },
  {
    "type": "where",
    "named": true
  },
  {
    "type": "with",
    "named": true
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "∀",
    "named": false
  }
]