[ { "type": "anonymous_function", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "function_parameters", "named": true } ] }, "return_type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } } }, { "type": "argument", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "label", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "hole", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "argument", "named": true }, { "type": "attribute_value", "named": true } ] } }, { "type": "assert", "named": true, "fields": { "message": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "attribute", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "attribute_value", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "label", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "bit_string", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list", "named": true }, { "type": "record", "named": true }, { "type": "string", "named": true }, { "type": "tuple", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "bit_string", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list", "named": true }, { "type": "record", "named": true }, { "type": "string", "named": true }, { "type": "tuple", "named": true } ] } }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": true, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "discard", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "list_pattern", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_pattern", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true }, { "type": "tuple_pattern", "named": true }, { "type": "{", "named": false }, { "type": "}", "named": false } ] }, "operator": { "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 }, { "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": "as", "named": false }, { "type": "|>", "named": false }, { "type": "||", "named": false } ] }, "right": { "multiple": true, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "discard", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "list_pattern", "named": true }, { "type": "panic", "named": true }, { "type": "pipeline_echo", "named": true }, { "type": "record", "named": true }, { "type": "record_pattern", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true }, { "type": "tuple_pattern", "named": true }, { "type": "{", "named": false }, { "type": "}", "named": false } ] } } }, { "type": "bit_string", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "bit_string_segment", "named": true } ] } }, { "type": "bit_string_pattern", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "bit_string_segment", "named": true } ] } }, { "type": "bit_string_segment", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] }, "options": { "multiple": true, "required": false, "types": [ { "type": ":", "named": false }, { "type": "bit_string_segment_options", "named": true } ] }, "value": { "multiple": true, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "as", "named": false }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "discard", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "list_pattern", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_pattern", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true }, { "type": "tuple_pattern", "named": true } ] } } }, { "type": "bit_string_segment_option", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "bit_string_segment_options", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "bit_string_segment_option", "named": true }, { "type": "integer", "named": true } ] } }, { "type": "block", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "assert", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "let", "named": true }, { "type": "let_assert", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true }, { "type": "use", "named": true } ] } }, { "type": "boolean_negation", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "case", "named": true, "fields": { "clauses": { "multiple": false, "required": false, "types": [ { "type": "case_clauses", "named": true } ] }, "subjects": { "multiple": false, "required": true, "types": [ { "type": "case_subjects", "named": true } ] } } }, { "type": "case_clause", "named": true, "fields": { "guard": { "multiple": false, "required": false, "types": [ { "type": "case_clause_guard", "named": true } ] }, "patterns": { "multiple": false, "required": true, "types": [ { "type": "case_clause_patterns", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "case_clause_guard", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list", "named": true }, { "type": "record", "named": true }, { "type": "string", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "case_clause_pattern", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] } }, { "type": "case_clause_patterns", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "case_clause_pattern", "named": true } ] } }, { "type": "case_clauses", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "case_clause", "named": true } ] } }, { "type": "case_subjects", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "constant", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "bit_string", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list", "named": true }, { "type": "record", "named": true }, { "type": "string", "named": true }, { "type": "tuple", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "visibility_modifier", "named": true } ] } }, { "type": "constructor_name", "named": true, "fields": {} }, { "type": "data_constructor", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "data_constructor_arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "constructor_name", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "attribute", "named": true } ] } }, { "type": "data_constructor_argument", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "label", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } } }, { "type": "data_constructor_arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "data_constructor_argument", "named": true } ] } }, { "type": "data_constructors", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "data_constructor", "named": true } ] } }, { "type": "discard", "named": true, "fields": {} }, { "type": "echo", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "escape_sequence", "named": true, "fields": {} }, { "type": "external_function", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "external_function_body", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "function_parameters", "named": true } ] }, "return_type": { "multiple": false, "required": true, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "visibility_modifier", "named": true } ] } }, { "type": "external_function_body", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "string", "named": true } ] } }, { "type": "external_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type_name", "named": true }, { "type": "visibility_modifier", "named": true } ] } }, { "type": "field_access", "named": true, "fields": { "field": { "multiple": false, "required": true, "types": [ { "type": "label", "named": true } ] }, "record": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "case", "named": true }, { "type": "field_access", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "function", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "function_parameters", "named": true } ] }, "return_type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "visibility_modifier", "named": true } ] } }, { "type": "function_call", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "arguments", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "block", "named": true }, { "type": "case", "named": true }, { "type": "field_access", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "function_parameter", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "label", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "discard", "named": true }, { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } } }, { "type": "function_parameter_types", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, { "type": "function_parameters", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "function_parameter", "named": true } ] } }, { "type": "function_type", "named": true, "fields": { "parameter_types": { "multiple": false, "required": false, "types": [ { "type": "function_parameter_types", "named": true } ] }, "return_type": { "multiple": false, "required": true, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } } }, { "type": "hole", "named": true, "fields": {} }, { "type": "identifier", "named": true, "fields": {} }, { "type": "import", "named": true, "fields": { "alias": { "multiple": false, "required": false, "types": [ { "type": "discard", "named": true }, { "type": "identifier", "named": true } ] }, "imports": { "multiple": false, "required": false, "types": [ { "type": "unqualified_imports", "named": true } ] }, "module": { "multiple": false, "required": true, "types": [ { "type": "module", "named": true } ] } } }, { "type": "integer", "named": true, "fields": {} }, { "type": "integer_negation", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "label", "named": true, "fields": {} }, { "type": "let", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] }, "pattern": { "multiple": true, "required": true, "types": [ { "type": "as", "named": false }, { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "let_assert", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] }, "message": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] }, "pattern": { "multiple": true, "required": true, "types": [ { "type": "as", "named": false }, { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "list", "named": true, "fields": { "spread": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "list_pattern", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "list_pattern_tail", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] } }, { "type": "list_pattern_tail", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "discard", "named": true }, { "type": "identifier", "named": true } ] } }, { "type": "module", "named": true, "fields": {} }, { "type": "panic", "named": true, "fields": { "message": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "pattern_spread", "named": true, "fields": {} }, { "type": "pipeline_echo", "named": true, "fields": {} }, { "type": "record", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "constructor_name", "named": true }, { "type": "remote_constructor_name", "named": true } ] } } }, { "type": "record_pattern", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "record_pattern_arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "constructor_name", "named": true }, { "type": "remote_constructor_name", "named": true } ] } } }, { "type": "record_pattern_argument", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] }, "label": { "multiple": false, "required": false, "types": [ { "type": "label", "named": true } ] }, "pattern": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] } } }, { "type": "record_pattern_arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "pattern_spread", "named": true }, { "type": "record_pattern_argument", "named": true } ] } }, { "type": "record_update", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "record_update_arguments", "named": true } ] }, "constructor": { "multiple": false, "required": true, "types": [ { "type": "constructor_name", "named": true }, { "type": "remote_constructor_name", "named": true } ] }, "spread": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "record_update_argument", "named": true, "fields": { "label": { "multiple": false, "required": true, "types": [ { "type": "label", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "record_update_arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "record_update_argument", "named": true } ] } }, { "type": "remote_constructor_name", "named": true, "fields": { "module": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "constructor_name", "named": true } ] } } }, { "type": "remote_type_identifier", "named": true, "fields": { "module": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "type_identifier", "named": true } ] } } }, { "type": "source_file", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "assert", "named": true }, { "type": "attribute", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "constant", "named": true }, { "type": "echo", "named": true }, { "type": "external_function", "named": true }, { "type": "external_type", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "import", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "let", "named": true }, { "type": "let_assert", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "target_group", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true }, { "type": "type_alias", "named": true }, { "type": "type_definition", "named": true }, { "type": "use", "named": true } ] } }, { "type": "string", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "quoted_content", "named": true } ] } }, { "type": "target", "named": true, "fields": {} }, { "type": "target_group", "named": true, "fields": { "target": { "multiple": false, "required": true, "types": [ { "type": "target", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute", "named": true }, { "type": "constant", "named": true }, { "type": "external_function", "named": true }, { "type": "external_type", "named": true }, { "type": "function", "named": true }, { "type": "import", "named": true }, { "type": "type_alias", "named": true }, { "type": "type_definition", "named": true } ] } }, { "type": "todo", "named": true, "fields": { "message": { "multiple": false, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } }, { "type": "tuple_access", "named": true, "fields": { "index": { "multiple": false, "required": true, "types": [ { "type": "integer", "named": true } ] }, "tuple": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "case", "named": true }, { "type": "field_access", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "tuple_pattern", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] } }, { "type": "tuple_type", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, { "type": "type", "named": true, "fields": { "arguments": { "multiple": false, "required": false, "types": [ { "type": "type_arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "remote_type_identifier", "named": true }, { "type": "type_identifier", "named": true } ] } } }, { "type": "type_alias", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "function_type", "named": true }, { "type": "opacity_modifier", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_name", "named": true }, { "type": "type_var", "named": true }, { "type": "visibility_modifier", "named": true } ] } }, { "type": "type_argument", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, { "type": "type_arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "type_argument", "named": true } ] } }, { "type": "type_definition", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "data_constructors", "named": true }, { "type": "opacity_modifier", "named": true }, { "type": "type_name", "named": true }, { "type": "visibility_modifier", "named": true } ] } }, { "type": "type_hole", "named": true, "fields": {} }, { "type": "type_identifier", "named": true, "fields": {} }, { "type": "type_name", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "remote_type_identifier", "named": true }, { "type": "type_identifier", "named": true } ] }, "parameters": { "multiple": false, "required": false, "types": [ { "type": "type_parameters", "named": true } ] } } }, { "type": "type_parameter", "named": true, "fields": {} }, { "type": "type_parameters", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "type_parameter", "named": true } ] } }, { "type": "type_var", "named": true, "fields": {} }, { "type": "unqualified_import", "named": true, "fields": { "alias": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true }, { "type": "type_identifier", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "type_identifier", "named": true } ] } } }, { "type": "unqualified_imports", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "unqualified_import", "named": true } ] } }, { "type": "use", "named": true, "fields": { "assignments": { "multiple": false, "required": false, "types": [ { "type": "use_assignments", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "anonymous_function", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_string", "named": true }, { "type": "block", "named": true }, { "type": "boolean_negation", "named": true }, { "type": "case", "named": true }, { "type": "echo", "named": true }, { "type": "field_access", "named": true }, { "type": "float", "named": true }, { "type": "function_call", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "integer_negation", "named": true }, { "type": "list", "named": true }, { "type": "panic", "named": true }, { "type": "record", "named": true }, { "type": "record_update", "named": true }, { "type": "string", "named": true }, { "type": "todo", "named": true }, { "type": "tuple", "named": true }, { "type": "tuple_access", "named": true } ] } } }, { "type": "use_assignment", "named": true, "fields": { "assign": { "multiple": true, "required": false, "types": [ { "type": "as", "named": false }, { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "function_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "type", "named": true }, { "type": "type_hole", "named": true }, { "type": "type_var", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "binary_expression", "named": true }, { "type": "bit_string_pattern", "named": true }, { "type": "discard", "named": true }, { "type": "float", "named": true }, { "type": "identifier", "named": true }, { "type": "integer", "named": true }, { "type": "list_pattern", "named": true }, { "type": "record_pattern", "named": true }, { "type": "string", "named": true }, { "type": "tuple_pattern", "named": true } ] } }, { "type": "use_assignments", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "use_assignment", "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": "]", "named": false }, { "type": "as", "named": false }, { "type": "assert", "named": false }, { "type": "big", "named": false }, { "type": "binary", "named": false }, { "type": "bit_string", "named": false }, { "type": "bits", "named": false }, { "type": "bytes", "named": false }, { "type": "case", "named": false }, { "type": "comment", "named": true }, { "type": "const", "named": false }, { "type": "echo", "named": false }, { "type": "erlang", "named": false }, { "type": "external", "named": false }, { "type": "float", "named": false }, { "type": "float", "named": true }, { "type": "fn", "named": false }, { "type": "if", "named": false }, { "type": "import", "named": false }, { "type": "int", "named": false }, { "type": "javascript", "named": false }, { "type": "let", "named": false }, { "type": "little", "named": false }, { "type": "module_comment", "named": true }, { "type": "native", "named": false }, { "type": "opacity_modifier", "named": true }, { "type": "panic", "named": false }, { "type": "quoted_content", "named": true }, { "type": "signed", "named": false }, { "type": "size", "named": false }, { "type": "statement_comment", "named": true }, { "type": "todo", "named": false }, { "type": "type", "named": false }, { "type": "unit", "named": false }, { "type": "unsigned", "named": false }, { "type": "use", "named": false }, { "type": "utf16", "named": false }, { "type": "utf16_codepoint", "named": false }, { "type": "utf32", "named": false }, { "type": "utf32_codepoint", "named": false }, { "type": "utf8", "named": false }, { "type": "utf8_codepoint", "named": false }, { "type": "visibility_modifier", "named": true }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "|>", "named": false }, { "type": "||", "named": false }, { "type": "}", "named": false } ]