[
{
"type": "SetN",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "atom",
"named": true
}
]
}
},
{
"type": "abstract",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "atom",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "PropN",
"named": true
},
{
"type": "SetN",
"named": true
},
{
"type": "atom",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "qid",
"named": true
},
{
"type": "record_assignments",
"named": true
}
]
}
},
{
"type": "attribute",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "qid",
"named": true
}
]
}
},
{
"type": "attributes",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "attribute",
"named": true
}
]
}
},
{
"type": "bid",
"named": true,
"fields": {}
},
{
"type": "catchall_pragma",
"named": true,
"fields": {}
},
{
"type": "data",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_name",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "unquote_decl",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "data_name",
"named": true,
"fields": {}
},
{
"type": "data_signature",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "data_name",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "do",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "do_where",
"named": true
},
{
"type": "stmt",
"named": true
}
]
}
},
{
"type": "do_where",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "lambda_clause",
"named": true
},
{
"type": "lambda_clause_absurd",
"named": true
}
]
}
},
{
"type": "expr",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "attributes",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "typed_binding",
"named": true
}
]
}
},
{
"type": "field_assignment",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "field_name",
"named": true
}
]
}
},
{
"type": "fields",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "signature",
"named": true
}
]
}
},
{
"type": "forall",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "function",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "attributes",
"named": true
},
{
"type": "lhs",
"named": true
},
{
"type": "rhs",
"named": true
},
{
"type": "where",
"named": true
}
]
}
},
{
"type": "function_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
}
]
}
},
{
"type": "generalize",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "signature",
"named": true
}
]
}
},
{
"type": "hole_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "bid",
"named": true
},
{
"type": "id",
"named": true
}
]
}
},
{
"type": "hole_names",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "hole_name",
"named": true
}
]
}
},
{
"type": "import",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "module_name",
"named": true
}
]
}
},
{
"type": "import_directive",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "id",
"named": true
},
{
"type": "renaming",
"named": true
}
]
}
},
{
"type": "infix",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "bid",
"named": true
},
{
"type": "integer",
"named": true
}
]
}
},
{
"type": "instance",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "integer",
"named": true,
"fields": {}
},
{
"type": "lambda",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "lambda_clause",
"named": true
},
{
"type": "lambda_clause_absurd",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "lambda_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "catchall_pragma",
"named": true
},
{
"type": "expr",
"named": true
}
]
}
},
{
"type": "lambda_clause_absurd",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "catchall_pragma",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
}
]
}
},
{
"type": "let",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "lhs",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "function_name",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "rewrite_equations",
"named": true
},
{
"type": "with_expressions",
"named": true
}
]
}
},
{
"type": "literal",
"named": true,
"fields": {}
},
{
"type": "macro",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "module",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "module_name",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "unquote_decl",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "module_application",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "module_name",
"named": true
}
]
}
},
{
"type": "module_assignment",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "import_directive",
"named": true
},
{
"type": "module_name",
"named": true
}
]
}
},
{
"type": "module_macro",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "import_directive",
"named": true
},
{
"type": "module_application",
"named": true
},
{
"type": "module_name",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "module_name",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "qid",
"named": true
}
]
}
},
{
"type": "mutual",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "open",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "import_directive",
"named": true
},
{
"type": "module_name",
"named": true
}
]
}
},
{
"type": "pattern",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "postulate",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "primitive",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "type_signature",
"named": true
}
]
}
},
{
"type": "private",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "record",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "record_declarations_block",
"named": true
},
{
"type": "record_name",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "record_assignments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "PropN",
"named": true
},
{
"type": "SetN",
"named": true
},
{
"type": "atom",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "field_assignment",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "module_assignment",
"named": true
},
{
"type": "qid",
"named": true
},
{
"type": "record_assignments",
"named": true
}
]
}
},
{
"type": "record_constructor",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "id",
"named": true
}
]
}
},
{
"type": "record_constructor_instance",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "record_constructor",
"named": true
}
]
}
},
{
"type": "record_declarations_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_constructor",
"named": true
},
{
"type": "record_constructor_instance",
"named": true
},
{
"type": "record_eta",
"named": true
},
{
"type": "record_induction",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "record_eta",
"named": true,
"fields": {}
},
{
"type": "record_induction",
"named": true,
"fields": {}
},
{
"type": "record_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "PropN",
"named": true
},
{
"type": "SetN",
"named": true
},
{
"type": "atom",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "qid",
"named": true
},
{
"type": "record_assignments",
"named": true
}
]
}
},
{
"type": "record_signature",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "record_name",
"named": true
},
{
"type": "typed_binding",
"named": true
},
{
"type": "untyped_binding",
"named": true
}
]
}
},
{
"type": "renaming",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "id",
"named": true
}
]
}
},
{
"type": "rewrite_equations",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
}
]
}
},
{
"type": "rhs",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expr",
"named": true
}
]
}
},
{
"type": "signature",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "attribute",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "field_name",
"named": true
},
{
"type": "signature",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "stmt",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "attributes",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "typed_binding",
"named": true
}
]
}
},
{
"type": "syntax",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "hole_names",
"named": true
},
{
"type": "id",
"named": true
}
]
}
},
{
"type": "type_signature",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "field_name",
"named": true
}
]
}
},
{
"type": "typed_binding",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "atom",
"named": true
},
{
"type": "attributes",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "qid",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "unquote_decl",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expr",
"named": true
},
{
"type": "id",
"named": true
}
]
}
},
{
"type": "untyped_binding",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "atom",
"named": true
},
{
"type": "attributes",
"named": true
},
{
"type": "bid",
"named": true
},
{
"type": "do",
"named": true
},
{
"type": "expr",
"named": true
},
{
"type": "forall",
"named": true
},
{
"type": "id",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "let",
"named": true
},
{
"type": "qid",
"named": true
}
]
}
},
{
"type": "where",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "abstract",
"named": true
},
{
"type": "bid",
"named": true
},
{
"type": "data",
"named": true
},
{
"type": "data_signature",
"named": true
},
{
"type": "fields",
"named": true
},
{
"type": "function",
"named": true
},
{
"type": "generalize",
"named": true
},
{
"type": "import",
"named": true
},
{
"type": "infix",
"named": true
},
{
"type": "instance",
"named": true
},
{
"type": "macro",
"named": true
},
{
"type": "module",
"named": true
},
{
"type": "module_macro",
"named": true
},
{
"type": "mutual",
"named": true
},
{
"type": "open",
"named": true
},
{
"type": "pattern",
"named": true
},
{
"type": "postulate",
"named": true
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": true
},
{
"type": "private",
"named": true
},
{
"type": "record",
"named": true
},
{
"type": "record_signature",
"named": true
},
{
"type": "syntax",
"named": true
},
{
"type": "unquote_decl",
"named": true
}
]
}
},
{
"type": "with_expressions",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expr",
"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": "CATCHALL",
"named": false
},
{
"type": "Prop",
"named": false
},
{
"type": "PropN",
"named": true
},
{
"type": "Set",
"named": false
},
{
"type": "\\",
"named": false
},
{
"type": "_",
"named": false
},
{
"type": "abstract",
"named": false
},
{
"type": "bid",
"named": false
},
{
"type": "codata",
"named": false
},
{
"type": "coinductive",
"named": false
},
{
"type": "comment",
"named": true
},
{
"type": "constructor",
"named": false
},
{
"type": "data",
"named": false
},
{
"type": "data_name",
"named": false
},
{
"type": "do",
"named": false
},
{
"type": "eta-equality",
"named": false
},
{
"type": "field",
"named": false
},
{
"type": "field_name",
"named": true
},
{
"type": "forall",
"named": false
},
{
"type": "hiding",
"named": false
},
{
"type": "id",
"named": true
},
{
"type": "import",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "inductive",
"named": false
},
{
"type": "infix",
"named": false
},
{
"type": "infixl",
"named": false
},
{
"type": "infixr",
"named": false
},
{
"type": "instance",
"named": false
},
{
"type": "let",
"named": false
},
{
"type": "macro",
"named": false
},
{
"type": "module",
"named": false
},
{
"type": "mutual",
"named": false
},
{
"type": "no-eta-equality",
"named": false
},
{
"type": "open",
"named": false
},
{
"type": "overlap",
"named": false
},
{
"type": "pattern",
"named": false
},
{
"type": "postulate",
"named": false
},
{
"type": "pragma",
"named": true
},
{
"type": "primitive",
"named": false
},
{
"type": "private",
"named": false
},
{
"type": "public",
"named": false
},
{
"type": "qid",
"named": true
},
{
"type": "quote",
"named": false
},
{
"type": "quoteContext",
"named": false
},
{
"type": "quoteGoal",
"named": false
},
{
"type": "quoteTerm",
"named": false
},
{
"type": "record",
"named": false
},
{
"type": "renaming",
"named": false
},
{
"type": "rewrite",
"named": false
},
{
"type": "syntax",
"named": false
},
{
"type": "tactic",
"named": false
},
{
"type": "to",
"named": false
},
{
"type": "unquote",
"named": false
},
{
"type": "unquoteDecl",
"named": false
},
{
"type": "unquoteDef",
"named": false
},
{
"type": "using",
"named": false
},
{
"type": "variable",
"named": false
},
{
"type": "where",
"named": false
},
{
"type": "with",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "{-#",
"named": false
},
{
"type": "{{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|)",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "}}",
"named": false
},
{
"type": "λ",
"named": false
},
{
"type": "…",
"named": false
},
{
"type": "→",
"named": false
},
{
"type": "∀",
"named": false
},
{
"type": "⦃",
"named": false
},
{
"type": "⦄",
"named": false
},
{
"type": "⦇",
"named": false
},
{
"type": "⦈",
"named": false
}
]