[
{
"type": "_id",
"named": true,
"subtypes": []
},
{
"type": "arg",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "arg_bind",
"named": true
},
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "term",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "arg_bind",
"named": true,
"fields": {
"field": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
}
},
{
"type": "args",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg_bind",
"named": true
},
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "term",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "arg_bind",
"named": true
},
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "ask_next",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "ask_statement",
"named": true,
"fields": {
"pat": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
},
"val": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
}
},
{
"type": "assignment_statement",
"named": true,
"fields": {
"pat": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
},
"val": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
}
},
{
"type": "bend_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "args",
"named": true
},
{
"type": "else_clause",
"named": true
},
{
"type": "when_clause",
"named": true
}
]
}
},
{
"type": "binary_op",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "ask_statement",
"named": true
},
{
"type": "assignment_statement",
"named": true
},
{
"type": "bend_statement",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fold_statement",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "inplace_op_statement",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "local_def_statement",
"named": true
},
{
"type": "match_case",
"named": true
},
{
"type": "match_statement",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "open_statement",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "switch_case",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
},
{
"type": "use_statement",
"named": true
},
{
"type": "with_statement",
"named": true
}
]
}
},
{
"type": "call_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "comparison_op",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "constructor",
"named": true,
"fields": {
"field": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "elif_clause",
"named": true,
"fields": {
"cond": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "else_clause",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "eraser",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "parenthesized_expression",
"named": true
}
]
}
},
{
"type": "fold_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "for_clause",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "if_clause",
"named": true
}
]
}
},
{
"type": "fun_application",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "fun_ask",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "ask_next",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "fun_bend",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "args",
"named": true
},
{
"type": "else_clause",
"named": true
},
{
"type": "when_clause",
"named": true
}
]
}
},
{
"type": "fun_fold",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "fun_function_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "fun_if",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "else_clause",
"named": true
}
]
}
},
{
"type": "fun_lambda",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "fun_local_def",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "fun_function_definition",
"named": true
},
{
"type": "nxt",
"named": true
}
]
}
},
{
"type": "fun_match",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "fun_open",
"named": true,
"fields": {
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"variable": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "fun_switch",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "fun_type_constructor",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "fun_type_constructor_fields",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "fun_type_constructor_fields",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "fun_type_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "fun_type_constructor",
"named": true
}
]
}
},
{
"type": "fun_with",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "hvm_definition",
"named": true,
"fields": {
"code": {
"multiple": true,
"required": true,
"types": [
{
"type": "hvm_code",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "identifier",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "_id",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "path",
"named": true
}
]
}
},
{
"type": "if_clause",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"cond": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "elif_clause",
"named": true
},
{
"type": "else_clause",
"named": true
}
]
}
},
{
"type": "imp_function_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameters",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "imp_lambda",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "parameters",
"named": true
}
]
}
},
{
"type": "imp_type_constructor",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "imp_type_constructor_field",
"named": true
}
]
}
},
{
"type": "imp_type_constructor_field",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "imp_type_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "imp_type_constructor",
"named": true
}
]
}
},
{
"type": "import_from",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "os_path",
"named": true
}
]
}
},
{
"type": "import_name",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "os_path",
"named": true
}
]
}
},
{
"type": "inplace_op_statement",
"named": true,
"fields": {
"op": {
"multiple": false,
"required": true,
"types": [
{
"type": "&=",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "@=",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "|=",
"named": false
}
]
},
"pat": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
},
"val": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
}
},
{
"type": "let_bind",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "let_next",
"named": true
},
{
"type": "let_value",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "let_next",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "let_value",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "list_comprehension",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "for_clause",
"named": true
},
{
"type": "if_clause",
"named": true
}
]
}
},
{
"type": "local_def_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "parameters",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "map",
"named": true,
"fields": {
"key": {
"multiple": true,
"required": false,
"types": [
{
"type": "character",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
"value": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
}
},
{
"type": "match_case",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "match_pattern",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "match_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "match_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "name",
"named": false,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "_id",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "path",
"named": true
}
]
}
},
{
"type": "num_operator",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "nxt",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "object_definition",
"named": true,
"fields": {
"field": {
"multiple": true,
"required": false,
"types": [
{
"type": "object_field",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "object_field",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "open_statement",
"named": true,
"fields": {
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"var": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "operator",
"named": true,
"fields": {}
},
{
"type": "other_pattern",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "other_pattern",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "fun_function_definition",
"named": true
},
{
"type": "fun_type_definition",
"named": true
},
{
"type": "hvm_definition",
"named": true
},
{
"type": "imp_function_definition",
"named": true
},
{
"type": "imp_type_definition",
"named": true
},
{
"type": "import_from",
"named": true
},
{
"type": "import_name",
"named": true
},
{
"type": "object_definition",
"named": true
}
]
}
},
{
"type": "superposition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "switch_case",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "switch_pattern",
"named": true
},
{
"type": "switch_predecessor",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "switch_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "integer",
"named": true
}
]
}
},
{
"type": "switch_predecessor",
"named": true,
"fields": {
"bind": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "integer",
"named": true
}
]
}
},
{
"type": "switch_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arg",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "with_args",
"named": true
}
]
}
},
{
"type": "term",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "tree_leaf",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "tree_node",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "tuple",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "unary_op",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
},
{
"type": "unscoped_var",
"named": true,
"fields": {}
},
{
"type": "use",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "use_next",
"named": true
},
{
"type": "use_value",
"named": true
}
]
}
},
{
"type": "use_next",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "use_statement",
"named": true,
"fields": {}
},
{
"type": "use_value",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "character",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "value",
"named": false,
"fields": {
"pat": {
"multiple": false,
"required": true,
"types": [
{
"type": "_",
"named": false
},
{
"type": "eraser",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
},
"val": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
}
]
}
}
},
{
"type": "when_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_op",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "character",
"named": true
},
{
"type": "comparison_op",
"named": true
},
{
"type": "constructor",
"named": true
},
{
"type": "eraser",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "fun_application",
"named": true
},
{
"type": "fun_ask",
"named": true
},
{
"type": "fun_bend",
"named": true
},
{
"type": "fun_fold",
"named": true
},
{
"type": "fun_if",
"named": true
},
{
"type": "fun_lambda",
"named": true
},
{
"type": "fun_local_def",
"named": true
},
{
"type": "fun_match",
"named": true
},
{
"type": "fun_open",
"named": true
},
{
"type": "fun_switch",
"named": true
},
{
"type": "fun_with",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "imp_lambda",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "let_bind",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "list_comprehension",
"named": true
},
{
"type": "map",
"named": true
},
{
"type": "num_operator",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "superposition",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "tree_leaf",
"named": true
},
{
"type": "tree_node",
"named": true
},
{
"type": "tuple",
"named": true
},
{
"type": "unary_op",
"named": true
},
{
"type": "unscoped_var",
"named": true
},
{
"type": "use",
"named": true
}
]
}
},
{
"type": "with_args",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "arg_bind",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "with_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "identifier",
"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": "-",
"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
},
{
"type": "@=",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "_",
"named": false
},
{
"type": "ask",
"named": false
},
{
"type": "bend",
"named": false
},
{
"type": "case",
"named": false
},
{
"type": "character",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "def",
"named": false
},
{
"type": "elif",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "fold",
"named": false
},
{
"type": "for",
"named": false
},
{
"type": "from",
"named": false
},
{
"type": "hvm",
"named": false
},
{
"type": "hvm_code",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "import",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "integer",
"named": true
},
{
"type": "lambda",
"named": false
},
{
"type": "let",
"named": false
},
{
"type": "match",
"named": false
},
{
"type": "multiline_comment",
"named": true
},
{
"type": "object",
"named": false
},
{
"type": "open",
"named": false
},
{
"type": "os_path",
"named": true
},
{
"type": "path",
"named": true
},
{
"type": "return",
"named": false
},
{
"type": "string",
"named": true
},
{
"type": "switch",
"named": false
},
{
"type": "symbol",
"named": true
},
{
"type": "type",
"named": false
},
{
"type": "use",
"named": false
},
{
"type": "when",
"named": false
},
{
"type": "with",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|=",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
},
{
"type": "λ",
"named": false
}
]