[ { "type": "adt", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "constructors", "named": true }, { "type": "context", "named": true }, { "type": "deriving", "named": true }, { "type": "gadt_constructor", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_variable", "named": true }, { "type": "where", "named": true } ] } }, { "type": "alt", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "decls", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "gdpat", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "where", "named": true } ] } }, { "type": "alts", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "alt", "named": true } ] } }, { "type": "annotated_type_variable", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "type_variable", "named": true } ] } }, { "type": "bind_pattern", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "calling_convention", "named": true, "fields": {} }, { "type": "class", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "class_body", "named": true }, { "type": "class_head", "named": true }, { "type": "context", "named": true }, { "type": "fundeps", "named": true } ] } }, { "type": "class_body", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "data_family", "named": true }, { "type": "decl_tyfam_sig", "named": true }, { "type": "decl_type", "named": true }, { "type": "default_signature", "named": true }, { "type": "fixity", "named": true }, { "type": "function", "named": true }, { "type": "signature", "named": true }, { "type": "where", "named": true } ] } }, { "type": "class_head", "named": true, "fields": { "class": { "multiple": false, "required": false, "types": [ { "type": "class_name", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "class_name", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "promoted", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "tycon_arrow", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "con_list", "named": true, "fields": {} }, { "type": "con_tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true } ] } }, { "type": "con_unit", "named": true, "fields": {} }, { "type": "constraint", "named": true, "fields": { "class": { "multiple": false, "required": false, "types": [ { "type": "class_name", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "constructor", "named": true, "fields": {} }, { "type": "constructor_operator", "named": true, "fields": {} }, { "type": "constructors", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "data_constructor", "named": true }, { "type": "data_constructor_infix", "named": true }, { "type": "data_constructor_record", "named": true }, { "type": "forall", "named": true } ] } }, { "type": "context", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "constraint", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "data_constructor", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "strict_type", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "data_constructor_infix", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "strict_type", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "data_constructor_record", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "record_fields", "named": true } ] } }, { "type": "data_family", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "data_instance", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "constructors", "named": true }, { "type": "context", "named": true }, { "type": "deriving", "named": true }, { "type": "forall", "named": true }, { "type": "gadt_constructor", "named": true }, { "type": "newtype_constructor", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "where", "named": true } ] } }, { "type": "decl_tyfam_sig", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "decl_type", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "decls", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "fixity", "named": true }, { "type": "function", "named": true }, { "type": "signature", "named": true } ] } }, { "type": "default_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "default_signature", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "signature", "named": true } ] } }, { "type": "deriving", "named": true, "fields": { "class": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constraint", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "qualified_type", "named": true }, { "type": "type", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "deriving_strategy", "named": true }, { "type": "via", "named": true } ] } }, { "type": "deriving_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "deriving_strategy", "named": true }, { "type": "forall", "named": true }, { "type": "instance_head", "named": true }, { "type": "via", "named": true } ] } }, { "type": "deriving_strategy", "named": true, "fields": {} }, { "type": "do_module", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true } ] } }, { "type": "equation", "named": true, "fields": { "lhs": { "multiple": false, "required": false, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] }, "rhs": { "multiple": true, "required": false, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "decls", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "guard_equation", "named": true }, { "type": "implicit_param", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "pattern", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "where", "named": true } ] } }, { "type": "exp_apply", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_arithmetic_sequence", "named": true, "fields": { "from": { "multiple": true, "required": true, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "step": { "multiple": true, "required": false, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "to": { "multiple": true, "required": false, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "comma", "named": true } ] } }, { "type": "exp_case", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "alts", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_cond", "named": true, "fields": { "else": { "multiple": true, "required": true, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "if": { "multiple": true, "required": true, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "then": { "multiple": true, "required": true, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } } }, { "type": "exp_do", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "do_module", "named": true }, { "type": "stmt", "named": true } ] } }, { "type": "exp_field", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "variable", "named": true }, { "type": "wildcard", "named": true } ] } }, { "type": "exp_if_guard", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "gdpat", "named": true } ] } }, { "type": "exp_in", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_infix", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exp_lambda", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_lambda_case", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "alts", "named": true } ] } }, { "type": "exp_let", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "decls", "named": true } ] } }, { "type": "exp_let_in", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_in", "named": true }, { "type": "exp_let", "named": true } ] } }, { "type": "exp_list", "named": true, "fields": { "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_list_comprehension", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "qual", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_literal", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "char", "named": true }, { "type": "con_list", "named": true }, { "type": "con_tuple", "named": true }, { "type": "con_unit", "named": true }, { "type": "float", "named": true }, { "type": "integer", "named": true }, { "type": "string", "named": true } ] } }, { "type": "exp_name", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "implicit_parid", "named": true }, { "type": "label", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exp_negation", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_parens", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_record", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_field", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_section_left", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exp_section_right", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exp_th_quoted_name", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "operator", "named": true }, { "type": "promoted", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exp_tuple", "named": true, "fields": { "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_type_application", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "exp_unboxed_sum", "named": true, "fields": { "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_sum_empty", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "exp_unboxed_tuple", "named": true, "fields": { "type": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "expent", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "string", "named": true } ] } }, { "type": "export", "named": true, "fields": { "module": { "multiple": false, "required": false, "types": [ { "type": "module", "named": true }, { "type": "qualified_module", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "constructor_operator", "named": true }, { "type": "export_names", "named": true }, { "type": "namespace", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_type", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "export_names", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "all_names", "named": true }, { "type": "comma", "named": true }, { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "exports", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "export", "named": true } ] } }, { "type": "field", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "strict_type", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "fixity", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "integer", "named": true }, { "type": "varop", "named": true } ] } }, { "type": "forall", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constraint", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "promoted", "named": true }, { "type": "quantifiers", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "foreign_export", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "calling_convention", "named": true }, { "type": "expent", "named": true }, { "type": "safety", "named": true }, { "type": "signature", "named": true } ] } }, { "type": "foreign_import", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "calling_convention", "named": true }, { "type": "impent", "named": true }, { "type": "safety", "named": true }, { "type": "signature", "named": true } ] } }, { "type": "fun", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "strict_type", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "function", "named": true, "fields": { "infix": { "multiple": false, "required": false, "types": [ { "type": "infix", "named": true } ] }, "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "implicit_parid", "named": true }, { "type": "operator", "named": true }, { "type": "variable", "named": true } ] }, "pattern": { "multiple": false, "required": false, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] }, "patterns": { "multiple": false, "required": false, "types": [ { "type": "patterns", "named": true } ] }, "rhs": { "multiple": true, "required": false, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "decls", "named": true }, { "type": "guard_equation", "named": true }, { "type": "where", "named": true } ] } }, { "type": "fundep", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type_variable", "named": true } ] } }, { "type": "fundeps", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "fundep", "named": true } ] } }, { "type": "gadt_constructor", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "record_fields", "named": true }, { "type": "splice", "named": true }, { "type": "strict_type", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "gdpat", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "guards", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "guard", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "let", "named": true }, { "type": "pattern_guard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "guard_equation", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "guards", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "guards", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "guard", "named": true } ] } }, { "type": "haskell", "named": true, "fields": { "module": { "multiple": false, "required": false, "types": [ { "type": "module", "named": true }, { "type": "qualified_module", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "adt", "named": true }, { "type": "class", "named": true }, { "type": "data_family", "named": true }, { "type": "data_instance", "named": true }, { "type": "default_declaration", "named": true }, { "type": "deriving_declaration", "named": true }, { "type": "empty_file", "named": true }, { "type": "exports", "named": true }, { "type": "fixity", "named": true }, { "type": "foreign_export", "named": true }, { "type": "foreign_import", "named": true }, { "type": "function", "named": true }, { "type": "import", "named": true }, { "type": "instance", "named": true }, { "type": "newtype", "named": true }, { "type": "pattern_synonym", "named": true }, { "type": "role_annotation", "named": true }, { "type": "signature", "named": true }, { "type": "top_splice", "named": true }, { "type": "type_alias", "named": true }, { "type": "type_family", "named": true }, { "type": "type_instance", "named": true }, { "type": "where", "named": true } ] } }, { "type": "head", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "impent", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "string", "named": true } ] } }, { "type": "implicit_param", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "implicit_parid", "named": true } ] } }, { "type": "import", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "import_list", "named": true }, { "type": "import_package", "named": true }, { "type": "module", "named": true }, { "type": "qualified_module", "named": true } ] } }, { "type": "import_con_names", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "all_names", "named": true }, { "type": "comma", "named": true }, { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "import_item", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor_operator", "named": true }, { "type": "import_con_names", "named": true }, { "type": "namespace", "named": true }, { "type": "operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "import_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "import_item", "named": true } ] } }, { "type": "infix", "named": true, "fields": { "lhs": { "multiple": false, "required": true, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] }, "op": { "multiple": false, "required": true, "types": [ { "type": "varop", "named": true } ] }, "rhs": { "multiple": false, "required": true, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } } }, { "type": "inst_datainst", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "constructors", "named": true }, { "type": "context", "named": true }, { "type": "deriving", "named": true }, { "type": "forall", "named": true }, { "type": "gadt_constructor", "named": true }, { "type": "newtype_constructor", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "where", "named": true } ] } }, { "type": "inst_tyinst", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "instance", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "function", "named": true }, { "type": "inst_datainst", "named": true }, { "type": "inst_tyinst", "named": true }, { "type": "instance_head", "named": true }, { "type": "signature", "named": true }, { "type": "where", "named": true } ] } }, { "type": "instance_head", "named": true, "fields": { "class": { "multiple": false, "required": false, "types": [ { "type": "class_name", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "integer", "named": true, "fields": {} }, { "type": "let", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "decls", "named": true } ] } }, { "type": "module", "named": true, "fields": {} }, { "type": "namespace", "named": true, "fields": {} }, { "type": "newtype", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "context", "named": true }, { "type": "deriving", "named": true }, { "type": "gadt_constructor", "named": true }, { "type": "newtype_constructor", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_variable", "named": true }, { "type": "where", "named": true } ] } }, { "type": "newtype_constructor", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "field", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "operator", "named": true, "fields": {} }, { "type": "pat_apply", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_as", "named": true, "fields": { "pat": { "multiple": false, "required": true, "types": [ { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] }, "var": { "multiple": false, "required": true, "types": [ { "type": "variable", "named": true } ] } } }, { "type": "pat_field", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "operator", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "qualified_operator", "named": true }, { "type": "qualified_variable", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "variable", "named": true }, { "type": "wildcard", "named": true } ] } }, { "type": "pat_fields", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "pat_field", "named": true } ] } }, { "type": "pat_infix", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_irrefutable", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_list", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_literal", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "char", "named": true }, { "type": "con_list", "named": true }, { "type": "con_tuple", "named": true }, { "type": "con_unit", "named": true }, { "type": "float", "named": true }, { "type": "integer", "named": true }, { "type": "string", "named": true } ] } }, { "type": "pat_name", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "operator", "named": true }, { "type": "qualified_constructor", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "pat_negation", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "float", "named": true }, { "type": "integer", "named": true } ] } }, { "type": "pat_parens", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_record", "named": true, "fields": { "con": { "multiple": false, "required": true, "types": [ { "type": "pat_name", "named": true } ] }, "fields": { "multiple": false, "required": true, "types": [ { "type": "pat_fields", "named": true } ] } } }, { "type": "pat_strict", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_typed", "named": true, "fields": { "pattern": { "multiple": false, "required": true, "types": [ { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } } }, { "type": "pat_unboxed_tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_view", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_typed", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_view", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pat_wildcard", "named": true, "fields": {} }, { "type": "pattern", "named": true, "fields": { "name": { "multiple": false, "required": false, "types": [ { "type": "qualified_type", "named": true }, { "type": "type", "named": true } ] }, "op": { "multiple": false, "required": false, "types": [ { "type": "constructor_operator", "named": true }, { "type": "promoted", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "ticked", "named": true }, { "type": "type_operator", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "pattern_guard", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "pat_apply", "named": true }, { "type": "pat_as", "named": true }, { "type": "pat_infix", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_negation", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "pattern_synonym", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "equation", "named": true }, { "type": "signature", "named": true } ] } }, { "type": "patterns", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "pat_as", "named": true }, { "type": "pat_irrefutable", "named": true }, { "type": "pat_list", "named": true }, { "type": "pat_literal", "named": true }, { "type": "pat_name", "named": true }, { "type": "pat_parens", "named": true }, { "type": "pat_record", "named": true }, { "type": "pat_strict", "named": true }, { "type": "pat_tuple", "named": true }, { "type": "pat_unboxed_tuple", "named": true }, { "type": "pat_wildcard", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "promoted", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "constructor_operator", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "ticked", "named": true }, { "type": "type", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_operator", "named": true }, { "type": "type_tuple", "named": true } ] } }, { "type": "qual", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "bind_pattern", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "let", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "qualified_constructor", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor", "named": true }, { "type": "module", "named": true } ] } }, { "type": "qualified_constructor_operator", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor_operator", "named": true }, { "type": "module", "named": true } ] } }, { "type": "qualified_module", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true } ] } }, { "type": "qualified_operator", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true }, { "type": "operator", "named": true } ] } }, { "type": "qualified_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true }, { "type": "type", "named": true } ] } }, { "type": "qualified_type_operator", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true }, { "type": "type_operator", "named": true } ] } }, { "type": "qualified_variable", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "module", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "quantifiers", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "quasiquote", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "quasiquote_body", "named": true }, { "type": "quoter", "named": true } ] } }, { "type": "rec", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "stmt", "named": true } ] } }, { "type": "record_fields", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "field", "named": true } ] } }, { "type": "role_annotation", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constructor_operator", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true }, { "type": "type_role", "named": true } ] } }, { "type": "safety", "named": true, "fields": {} }, { "type": "signature", "named": true, "fields": { "lhs": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "comma", "named": true }, { "type": "operator", "named": true }, { "type": "variable", "named": true } ] }, "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "operator", "named": true }, { "type": "variable", "named": true } ] }, "type": { "multiple": true, "required": true, "types": [ { "type": "::", "named": false }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "constructor", "named": true }, { "type": "constructor_operator", "named": true } ] } }, { "type": "splice", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_name", "named": true }, { "type": "exp_parens", "named": true } ] } }, { "type": "stmt", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "bind_pattern", "named": true }, { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "let", "named": true }, { "type": "quasiquote", "named": true }, { "type": "rec", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "strict_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "ticked", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "qualified_type", "named": true }, { "type": "type", "named": true } ] } }, { "type": "top_splice", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "exp_apply", "named": true }, { "type": "exp_arithmetic_sequence", "named": true }, { "type": "exp_case", "named": true }, { "type": "exp_cond", "named": true }, { "type": "exp_do", "named": true }, { "type": "exp_if_guard", "named": true }, { "type": "exp_infix", "named": true }, { "type": "exp_lambda", "named": true }, { "type": "exp_lambda_case", "named": true }, { "type": "exp_let_in", "named": true }, { "type": "exp_list", "named": true }, { "type": "exp_list_comprehension", "named": true }, { "type": "exp_literal", "named": true }, { "type": "exp_name", "named": true }, { "type": "exp_negation", "named": true }, { "type": "exp_parens", "named": true }, { "type": "exp_record", "named": true }, { "type": "exp_section_left", "named": true }, { "type": "exp_section_right", "named": true }, { "type": "exp_th_quoted_name", "named": true }, { "type": "exp_tuple", "named": true }, { "type": "exp_type_application", "named": true }, { "type": "exp_unboxed_sum", "named": true }, { "type": "exp_unboxed_tuple", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true } ] } }, { "type": "tycon_arrow", "named": true, "fields": {} }, { "type": "type", "named": true, "fields": {} }, { "type": "type_alias", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "constructor_operator", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "type_apply", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_family", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "equation", "named": true }, { "type": "head", "named": true }, { "type": "where", "named": true } ] } }, { "type": "type_infix", "named": true, "fields": { "left": { "multiple": false, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "constructor_operator", "named": true }, { "type": "ticked", "named": true }, { "type": "type_operator", "named": true } ] }, "op": { "multiple": false, "required": false, "types": [ { "type": "constructor_operator", "named": true }, { "type": "promoted", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "ticked", "named": true }, { "type": "type_operator", "named": true } ] }, "right": { "multiple": false, "required": false, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "type_instance", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_list", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comma", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_literal", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "char", "named": true }, { "type": "con_list", "named": true }, { "type": "con_tuple", "named": true }, { "type": "con_unit", "named": true }, { "type": "float", "named": true }, { "type": "integer", "named": true }, { "type": "string", "named": true } ] } }, { "type": "type_name", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "annotated_type_variable", "named": true }, { "type": "constructor_operator", "named": true }, { "type": "promoted", "named": true }, { "type": "qualified_constructor_operator", "named": true }, { "type": "qualified_type", "named": true }, { "type": "qualified_type_operator", "named": true }, { "type": "tycon_arrow", "named": true }, { "type": "type", "named": true }, { "type": "type_operator", "named": true }, { "type": "type_variable", "named": true } ] } }, { "type": "type_parens", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_role", "named": true, "fields": {} }, { "type": "type_tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_unboxed_sum", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_unboxed_tuple", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "comma", "named": true }, { "type": "context", "named": true }, { "type": "forall", "named": true }, { "type": "fun", "named": true }, { "type": "implicit_param", "named": true }, { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_apply", "named": true }, { "type": "type_infix", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "named": true } ] } }, { "type": "type_variable", "named": true, "fields": {} }, { "type": "variable", "named": true, "fields": {} }, { "type": "varop", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "operator", "named": true }, { "type": "variable", "named": true } ] } }, { "type": "via", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "promoted", "named": true }, { "type": "quasiquote", "named": true }, { "type": "splice", "named": true }, { "type": "type_list", "named": true }, { "type": "type_literal", "named": true }, { "type": "type_name", "named": true }, { "type": "type_parens", "named": true }, { "type": "type_star", "named": true }, { "type": "type_tuple", "named": true }, { "type": "type_unboxed_sum", "named": true }, { "type": "type_unboxed_tuple", "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": "all_names", "named": true }, { "type": "anyclass", "named": false }, { "type": "as", "named": false }, { "type": "capi", "named": false }, { "type": "case", "named": false }, { "type": "ccall", "named": false }, { "type": "char", "named": true }, { "type": "class", "named": false }, { "type": "comma", "named": true }, { "type": "comment", "named": true }, { "type": "cplusplus", "named": false }, { "type": "cpp", "named": true }, { "type": "data", "named": false }, { "type": "default", "named": false }, { "type": "deriving", "named": false }, { "type": "do", "named": false }, { "type": "dotnet", "named": false }, { "type": "else", "named": false }, { "type": "empty_file", "named": true }, { "type": "exp_sum_empty", "named": true }, { "type": "export", "named": false }, { "type": "family", "named": false }, { "type": "float", "named": true }, { "type": "forall", "named": false }, { "type": "foreign", "named": false }, { "type": "hiding", "named": false }, { "type": "if", "named": false }, { "type": "implicit_parid", "named": true }, { "type": "import", "named": false }, { "type": "import_package", "named": true }, { "type": "in", "named": false }, { "type": "infix", "named": false }, { "type": "infixl", "named": false }, { "type": "infixr", "named": false }, { "type": "instance", "named": false }, { "type": "interruptible", "named": false }, { "type": "jvm", "named": false }, { "type": "label", "named": true }, { "type": "let", "named": false }, { "type": "mdo", "named": false }, { "type": "module", "named": false }, { "type": "newtype", "named": false }, { "type": "nominal", "named": false }, { "type": "of", "named": false }, { "type": "pattern", "named": false }, { "type": "phantom", "named": false }, { "type": "pragma", "named": true }, { "type": "prim", "named": false }, { "type": "qualified", "named": false }, { "type": "quasiquote_body", "named": true }, { "type": "quoter", "named": true }, { "type": "rec", "named": false }, { "type": "representational", "named": false }, { "type": "role", "named": false }, { "type": "safe", "named": false }, { "type": "stdcall", "named": false }, { "type": "stock", "named": false }, { "type": "string", "named": true }, { "type": "then", "named": false }, { "type": "type", "named": false }, { "type": "type_operator", "named": true }, { "type": "type_star", "named": true }, { "type": "unsafe", "named": false }, { "type": "via", "named": false }, { "type": "where", "named": true }, { "type": "wildcard", "named": true }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "|]", "named": false }, { "type": "}", "named": false }, { "type": "~", "named": false }, { "type": "∀", "named": false } ]