pub const NODE_TYPES: &str = "[\n {\n \"type\": \"class_decl\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"data_family\",\n \"named\": true\n },\n {\n \"type\": \"decl\",\n \"named\": true\n },\n {\n \"type\": \"default_signature\",\n \"named\": true\n },\n {\n \"type\": \"fixity\",\n \"named\": true\n },\n {\n \"type\": \"type_family\",\n \"named\": true\n },\n {\n \"type\": \"type_instance\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"constraint\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"apply\",\n \"named\": true\n },\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"promoted\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"quasiquote\",\n \"named\": true\n },\n {\n \"type\": \"splice\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n },\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"constraints\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"constraint\",\n \"named\": true\n },\n {\n \"type\": \"context\",\n \"named\": true\n },\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"implicit_parameter\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"decl\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"bind\",\n \"named\": true\n },\n {\n \"type\": \"function\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"declaration\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"class\",\n \"named\": true\n },\n {\n \"type\": \"data_family\",\n \"named\": true\n },\n {\n \"type\": \"data_instance\",\n \"named\": true\n },\n {\n \"type\": \"data_type\",\n \"named\": true\n },\n {\n \"type\": \"decl\",\n \"named\": true\n },\n {\n \"type\": \"default_types\",\n \"named\": true\n },\n {\n \"type\": \"deriving_instance\",\n \"named\": true\n },\n {\n \"type\": \"fixity\",\n \"named\": true\n },\n {\n \"type\": \"foreign_export\",\n \"named\": true\n },\n {\n \"type\": \"foreign_import\",\n \"named\": true\n },\n {\n \"type\": \"instance\",\n \"named\": true\n },\n {\n \"type\": \"kind_signature\",\n \"named\": true\n },\n {\n \"type\": \"newtype\",\n \"named\": true\n },\n {\n \"type\": \"pattern_synonym\",\n \"named\": true\n },\n {\n \"type\": \"role_annotation\",\n \"named\": true\n },\n {\n \"type\": \"top_splice\",\n \"named\": true\n },\n {\n \"type\": \"type_family\",\n \"named\": true\n },\n {\n \"type\": \"type_instance\",\n \"named\": true\n },\n {\n \"type\": \"type_synomym\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"expression\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"apply\",\n \"named\": true\n },\n {\n \"type\": \"arithmetic_sequence\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": true\n },\n {\n \"type\": \"conditional\",\n \"named\": true\n },\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"do\",\n \"named\": true\n },\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n },\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"label\",\n \"named\": true\n },\n {\n \"type\": \"lambda\",\n \"named\": true\n },\n {\n \"type\": \"lambda_case\",\n \"named\": true\n },\n {\n \"type\": \"lambda_cases\",\n \"named\": true\n },\n {\n \"type\": \"left_section\",\n \"named\": true\n },\n {\n \"type\": \"let_in\",\n \"named\": true\n },\n {\n \"type\": \"list\",\n \"named\": true\n },\n {\n \"type\": \"list_comprehension\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_way_if\",\n \"named\": true\n },\n {\n \"type\": \"negation\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"projection\",\n \"named\": true\n },\n {\n \"type\": \"projection_selector\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"quasiquote\",\n \"named\": true\n },\n {\n \"type\": \"quote\",\n \"named\": true\n },\n {\n \"type\": \"record\",\n \"named\": true\n },\n {\n \"type\": \"right_section\",\n \"named\": true\n },\n {\n \"type\": \"splice\",\n \"named\": true\n },\n {\n \"type\": \"th_quoted_name\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"typed_quote\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"guard\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"boolean\",\n \"named\": true\n },\n {\n \"type\": \"let\",\n \"named\": true\n },\n {\n \"type\": \"pattern_guard\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"instance_decl\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"data_instance\",\n \"named\": true\n },\n {\n \"type\": \"decl\",\n \"named\": true\n },\n {\n \"type\": \"type_instance\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"pattern\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"apply\",\n \"named\": true\n },\n {\n \"type\": \"as\",\n \"named\": true\n },\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"irrefutable\",\n \"named\": true\n },\n {\n \"type\": \"list\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"negation\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"quasiquote\",\n \"named\": true\n },\n {\n \"type\": \"record\",\n \"named\": true\n },\n {\n \"type\": \"splice\",\n \"named\": true\n },\n {\n \"type\": \"strict\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n },\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"qualifier\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"boolean\",\n \"named\": true\n },\n {\n \"type\": \"generator\",\n \"named\": true\n },\n {\n \"type\": \"group\",\n \"named\": true\n },\n {\n \"type\": \"let\",\n \"named\": true\n },\n {\n \"type\": \"transform\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"context\",\n \"named\": true\n },\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n },\n {\n \"type\": \"function\",\n \"named\": true\n },\n {\n \"type\": \"implicit_parameter\",\n \"named\": true\n },\n {\n \"type\": \"linear_function\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"statement\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"bind\",\n \"named\": true\n },\n {\n \"type\": \"exp\",\n \"named\": true\n },\n {\n \"type\": \"let\",\n \"named\": true\n },\n {\n \"type\": \"rec\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"type\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"apply\",\n \"named\": true\n },\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"list\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"promoted\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"quasiquote\",\n \"named\": true\n },\n {\n \"type\": \"splice\",\n \"named\": true\n },\n {\n \"type\": \"star\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n },\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"type_param\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"invisible\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n },\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"(#\",\n \"named\": false,\n \"fields\": {}\n },\n {\n \"type\": \"abstract_family\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"alternative\",\n \"named\": true,\n \"fields\": {\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n },\n \"match\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"match\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"patterns\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"alternatives\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"alternative\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"annotated\",\n \"named\": true,\n \"fields\": {\n \"kind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"apply\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"explicit_type\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"kind_application\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"type_application\",\n \"named\": true\n },\n {\n \"type\": \"type_binder\",\n \"named\": true\n }\n ]\n },\n \"constructor\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constraint\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n },\n \"function\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"arithmetic_sequence\",\n \"named\": true,\n \"fields\": {\n \"from\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"step\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"to\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"as\",\n \"named\": true,\n \"fields\": {\n \"bind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"associated_type\",\n \"named\": true,\n \"fields\": {\n \"namespace\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": false\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"bind\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"<-\",\n \"named\": false\n },\n {\n \"type\": \"\u{2190}\",\n \"named\": false\n }\n ]\n },\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"implicit\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n }\n ]\n },\n \"match\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"match\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"binding_list\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"boolean\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"case\",\n \"named\": true,\n \"fields\": {\n \"alternatives\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"alternatives\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"children\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"all_names\",\n \"named\": true\n },\n {\n \"type\": \"associated_type\",\n \"named\": true\n },\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"class\",\n \"named\": true,\n \"fields\": {\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"declarations\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"class_declarations\",\n \"named\": true\n }\n ]\n },\n \"fundeps\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"fundeps\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"class_declarations\",\n \"named\": true,\n \"fields\": {\n \"declaration\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"class_decl\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"conditional\",\n \"named\": true,\n \"fields\": {\n \"else\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"if\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"then\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"constructor_operator\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"constructor_synonym\",\n \"named\": true,\n \"fields\": {\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n },\n \"implicit\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n }\n ]\n },\n \"match\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"match\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"constructor_synonyms\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor_synonym\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"context\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"=>\",\n \"named\": false\n },\n {\n \"type\": \"\u{21d2}\",\n \"named\": false\n }\n ]\n },\n \"constraint\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constraints\",\n \"named\": true\n }\n ]\n },\n \"context\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constraint\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"data_constructor\",\n \"named\": true,\n \"fields\": {\n \"constructor\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"prefix\",\n \"named\": true\n },\n {\n \"type\": \"record\",\n \"named\": true\n },\n {\n \"type\": \"special\",\n \"named\": true\n }\n ]\n },\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"data_constructors\",\n \"named\": true,\n \"fields\": {\n \"constructor\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"data_constructor\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"data_family\",\n \"named\": true,\n \"fields\": {\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"data_instance\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"data_type\",\n \"named\": true\n },\n {\n \"type\": \"newtype\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"data_type\",\n \"named\": true,\n \"fields\": {\n \"constructors\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"data_constructors\",\n \"named\": true\n },\n {\n \"type\": \"gadt_constructors\",\n \"named\": true\n }\n ]\n },\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"deriving\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"deriving\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n },\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"declarations\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"import\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"default_signature\",\n \"named\": true,\n \"fields\": {\n \"signature\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"default_types\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"deriving\",\n \"named\": true,\n \"fields\": {\n \"classes\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constraint\",\n \"named\": true\n }\n ]\n },\n \"strategy\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"deriving_strategy\",\n \"named\": true\n }\n ]\n },\n \"via\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"via\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"deriving_instance\",\n \"named\": true,\n \"fields\": {\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n },\n \"strategy\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"deriving_strategy\",\n \"named\": true\n }\n ]\n },\n \"via\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"via\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"deriving_strategy\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"do\",\n \"named\": true,\n \"fields\": {\n \"statement\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"do_module\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"do_module\",\n \"named\": true,\n \"fields\": {\n \"id\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"do\",\n \"named\": false\n },\n {\n \"type\": \"mdo\",\n \"named\": false\n }\n ]\n },\n \"module\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"empty_list\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"entity\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"equation\",\n \"named\": true,\n \"fields\": {\n \"constructors\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor_synonyms\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n },\n \"synonym\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"equations\",\n \"named\": true,\n \"fields\": {\n \"equation\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"equation\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"exp\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"explicit_type\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"export\",\n \"named\": true,\n \"fields\": {\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"children\",\n \"named\": true\n }\n ]\n },\n \"namespace\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"namespace\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"variable\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"exports\",\n \"named\": true,\n \"fields\": {\n \"export\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"export\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"module_export\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n }\n ]\n },\n \"parameter\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_name\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_path\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"subfield\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"field_pattern\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_update\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"field\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n },\n {\n \"type\": \"field_path\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"wildcard\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fields\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"fixity\",\n \"named\": true,\n \"fields\": {\n \"associativity\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": false\n },\n {\n \"type\": \"infixl\",\n \"named\": false\n },\n {\n \"type\": \"infixr\",\n \"named\": false\n }\n ]\n },\n \"operator\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"infix_id\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n }\n ]\n },\n \"precedence\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"integer\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"forall\",\n \"named\": true,\n \"fields\": {\n \"constraint\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constraints\",\n \"named\": true\n }\n ]\n },\n \"quantifier\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": false\n },\n {\n \"type\": \"\u{2200}\",\n \"named\": false\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"variables\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_variables\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"forall_required\",\n \"named\": true,\n \"fields\": {\n \"quantifier\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": false\n },\n {\n \"type\": \"\u{2200}\",\n \"named\": false\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"variables\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_variables\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"foreign_export\",\n \"named\": true,\n \"fields\": {\n \"calling_convention\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"calling_convention\",\n \"named\": true\n }\n ]\n },\n \"entity\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"entity\",\n \"named\": true\n }\n ]\n },\n \"signature\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"foreign_import\",\n \"named\": true,\n \"fields\": {\n \"calling_convention\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"calling_convention\",\n \"named\": true\n }\n ]\n },\n \"entity\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"entity\",\n \"named\": true\n }\n ]\n },\n \"safety\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"safety\",\n \"named\": true\n }\n ]\n },\n \"signature\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"function\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \"\u{2192}\",\n \"named\": false\n }\n ]\n },\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n },\n \"match\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"match\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"parameter\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n }\n ]\n },\n \"parens\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"function_head_parens\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"patterns\",\n \"named\": true\n }\n ]\n },\n \"result\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_head_parens\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"parens\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"function_head_parens\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"patterns\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fundep\",\n \"named\": true,\n \"fields\": {\n \"determined\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"matched\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"fundeps\",\n \"named\": true,\n \"fields\": {\n \"fundep\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"fundep\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gadt_constructor\",\n \"named\": true,\n \"fields\": {\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n },\n \"names\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"binding_list\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"prefix\",\n \"named\": true\n },\n {\n \"type\": \"record\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gadt_constructors\",\n \"named\": true,\n \"fields\": {\n \"constructor\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gadt_constructor\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"generator\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"<-\",\n \"named\": false\n },\n {\n \"type\": \"\u{2190}\",\n \"named\": false\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"group\",\n \"named\": true,\n \"fields\": {\n \"classifier\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"key\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"guards\",\n \"named\": true,\n \"fields\": {\n \"guard\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"guard\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"haskell\",\n \"named\": true,\n \"root\": true,\n \"fields\": {\n \"declarations\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declarations\",\n \"named\": true\n }\n ]\n },\n \"imports\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"imports\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"header\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"header\",\n \"named\": true,\n \"fields\": {\n \"exports\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"exports\",\n \"named\": true\n }\n ]\n },\n \"module\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"implicit_parameter\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"import\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n },\n \"module\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n },\n \"names\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"import_list\",\n \"named\": true\n }\n ]\n },\n \"package\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"import_package\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"import_list\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"import_name\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"import_name\",\n \"named\": true,\n \"fields\": {\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"children\",\n \"named\": true\n }\n ]\n },\n \"namespace\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"namespace\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"variable\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"imports\",\n \"named\": true,\n \"fields\": {\n \"import\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"import\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"inferred\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"annotated\",\n \"named\": true\n },\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"infix\",\n \"named\": true,\n \"fields\": {\n \"left_operand\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"infix_id\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"promoted\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"right_operand\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"infix_id\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"instance\",\n \"named\": true,\n \"fields\": {\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"declarations\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"instance_declarations\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"instance_declarations\",\n \"named\": true,\n \"fields\": {\n \"declaration\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"instance_decl\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"integer\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"invisible\",\n \"named\": true,\n \"fields\": {\n \"bind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"irrefutable\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"kind_application\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"kind_signature\",\n \"named\": true,\n \"fields\": {\n \"kind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"patterns\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"lambda_case\",\n \"named\": true,\n \"fields\": {\n \"alternatives\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"alternatives\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"lambda_cases\",\n \"named\": true,\n \"fields\": {\n \"alternatives\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"alternatives\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"lazy_field\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"left_section\",\n \"named\": true,\n \"fields\": {\n \"left_operand\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"infix_id\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"let\",\n \"named\": true,\n \"fields\": {\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"let_in\",\n \"named\": true,\n \"fields\": {\n \"binds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"local_binds\",\n \"named\": true\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"linear_function\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \"->.\",\n \"named\": false\n },\n {\n \"type\": \"\u{2192}\",\n \"named\": false\n },\n {\n \"type\": \"\u{22b8}\",\n \"named\": false\n }\n ]\n },\n \"multiplicity\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"modifier\",\n \"named\": true\n }\n ]\n },\n \"parameter\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n }\n ]\n },\n \"result\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"list\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"list_comprehension\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"qualifiers\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"qualifiers\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"char\",\n \"named\": true\n },\n {\n \"type\": \"float\",\n \"named\": true\n },\n {\n \"type\": \"integer\",\n \"named\": true\n },\n {\n \"type\": \"string\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"local_binds\",\n \"named\": true,\n \"fields\": {\n \"decl\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"decl\",\n \"named\": true\n },\n {\n \"type\": \"fixity\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"match\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"guards\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"guards\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"module\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module_id\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"module_export\",\n \"named\": true,\n \"fields\": {\n \"module\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"multi_way_if\",\n \"named\": true,\n \"fields\": {\n \"match\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"match\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"namespace\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"negation\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"minus\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"-\",\n \"named\": false\n }\n ]\n },\n \"number\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"float\",\n \"named\": true\n },\n {\n \"type\": \"integer\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"newtype\",\n \"named\": true,\n \"fields\": {\n \"constructor\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"newtype_constructor\",\n \"named\": true\n }\n ]\n },\n \"constructors\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gadt_constructors\",\n \"named\": true\n }\n ]\n },\n \"context\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"context\",\n \"named\": true\n }\n ]\n },\n \"deriving\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"deriving\",\n \"named\": true\n }\n ]\n },\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n },\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"newtype_constructor\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field\",\n \"named\": true\n },\n {\n \"type\": \"record\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"operator\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"parens\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n },\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"annotated\",\n \"named\": true\n },\n {\n \"type\": \"constraints\",\n \"named\": true\n },\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pattern_guard\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"<-\",\n \"named\": false\n },\n {\n \"type\": \"\u{2190}\",\n \"named\": false\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"pattern_synonym\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"equation\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"patterns\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"explicit_type\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"type_binder\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"prefix\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lazy_field\",\n \"named\": true\n },\n {\n \"type\": \"strict_field\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"prefix_unboxed_sum\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"prefix_unboxed_tuple\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"projection\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_name\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"projection_selector\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"promoted\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"empty_list\",\n \"named\": true\n },\n {\n \"type\": \"infix_id\",\n \"named\": true\n },\n {\n \"type\": \"list\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_tuple\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"qualified\",\n \"named\": true,\n \"fields\": {\n \"id\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"field_name\",\n \"named\": true\n },\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"module\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"module\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"qualifiers\",\n \"named\": true,\n \"fields\": {\n \"qualifier\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"qualifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"quantified_variables\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"inferred\",\n \"named\": true\n },\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"quasiquote\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quasiquote_body\",\n \"named\": true\n }\n ]\n },\n \"quoter\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quoter\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"quote\",\n \"named\": true,\n \"fields\": {\n \"quoter\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"d\",\n \"named\": false\n },\n {\n \"type\": \"e\",\n \"named\": false\n },\n {\n \"type\": \"p\",\n \"named\": false\n },\n {\n \"type\": \"t\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quoted_decls\",\n \"named\": true\n },\n {\n \"type\": \"quoted_expression\",\n \"named\": true\n },\n {\n \"type\": \"quoted_pattern\",\n \"named\": true\n },\n {\n \"type\": \"quoted_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"quoted_decls\",\n \"named\": true,\n \"fields\": {\n \"declaration\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"quoted_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"quoted_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"quoted_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"quoter\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"rec\",\n \"named\": true,\n \"fields\": {\n \"statement\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"record\",\n \"named\": true,\n \"fields\": {\n \"arrow\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \"\u{2192}\",\n \"named\": false\n }\n ]\n },\n \"constructor\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"field\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field\",\n \"named\": true\n },\n {\n \"type\": \"field_pattern\",\n \"named\": true\n },\n {\n \"type\": \"field_update\",\n \"named\": true\n }\n ]\n },\n \"fields\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"fields\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"right_section\",\n \"named\": true,\n \"fields\": {\n \"right_operand\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor_operator\",\n \"named\": true\n },\n {\n \"type\": \"infix_id\",\n \"named\": true\n },\n {\n \"type\": \"operator\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"role_annotation\",\n \"named\": true,\n \"fields\": {\n \"role\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_role\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"signature\",\n \"named\": true,\n \"fields\": {\n \"constraint\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constraints\",\n \"named\": true\n }\n ]\n },\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"names\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"binding_list\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n },\n \"synonym\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"binding_list\",\n \"named\": true\n },\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"special\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"empty_list\",\n \"named\": true\n },\n {\n \"type\": \"tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_sum\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_tuple\",\n \"named\": true\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"splice\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n },\n {\n \"type\": \"label\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"star\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"strict\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"strict_field\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"th_quoted_name\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n },\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"top_splice\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"transform\",\n \"named\": true,\n \"fields\": {\n \"key\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"transformation\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"tuple\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"constraints\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_application\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_binder\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_family\",\n \"named\": true,\n \"fields\": {\n \"closed_family\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"abstract_family\",\n \"named\": true\n },\n {\n \"type\": \"equations\",\n \"named\": true\n }\n ]\n },\n \"kind\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"type_family_injectivity\",\n \"named\": true\n },\n {\n \"type\": \"type_family_result\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_family_injectivity\",\n \"named\": true,\n \"fields\": {\n \"determined\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n },\n \"result\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"variable\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_family_result\",\n \"named\": true,\n \"fields\": {\n \"result\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_instance\",\n \"named\": true,\n \"fields\": {\n \"forall\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"forall\",\n \"named\": true\n },\n {\n \"type\": \"forall_required\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_patterns\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_params\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_patterns\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"kind_application\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_role\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"type_synomym\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"prefix_id\",\n \"named\": true\n },\n {\n \"type\": \"prefix_list\",\n \"named\": true\n },\n {\n \"type\": \"unit\",\n \"named\": true\n }\n ]\n },\n \"patterns\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"infix\",\n \"named\": true\n },\n {\n \"type\": \"parens\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"typed_quote\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"quoted_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unboxed_sum\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"unboxed_tuple\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"quantified_type\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"unboxed_unit\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"unit\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"via\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"quantified_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"signature\",\n \"named\": true\n },\n {\n \"type\": \"view_pattern\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"wildcard\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"#\",\n \"named\": false\n },\n {\n \"type\": \"#)\",\n \"named\": false\n },\n {\n \"type\": \"$\",\n \"named\": false\n },\n {\n \"type\": \"$$\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"\'\",\n \"named\": false\n },\n {\n \"type\": \"\'\'\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \"(#\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \"->.\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"..\",\n \"named\": false\n },\n {\n \"type\": \"1\",\n \"named\": false\n },\n {\n \"type\": \"::\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<-\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"=>\",\n \"named\": false\n },\n {\n \"type\": \"@\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"\\\\\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"_\",\n \"named\": false\n },\n {\n \"type\": \"`\",\n \"named\": false\n },\n {\n \"type\": \"all_names\",\n \"named\": true\n },\n {\n \"type\": \"anyclass\",\n \"named\": false\n },\n {\n \"type\": \"as\",\n \"named\": false\n },\n {\n \"type\": \"by\",\n \"named\": false\n },\n {\n \"type\": \"calling_convention\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"cases\",\n \"named\": false\n },\n {\n \"type\": \"char\",\n \"named\": true\n },\n {\n \"type\": \"class\",\n \"named\": false\n },\n {\n \"type\": \"comment\",\n \"named\": true\n },\n {\n \"type\": \"constructor\",\n \"named\": true\n },\n {\n \"type\": \"cpp\",\n \"named\": true\n },\n {\n \"type\": \"d\",\n \"named\": false\n },\n {\n \"type\": \"data\",\n \"named\": false\n },\n {\n \"type\": \"default\",\n \"named\": false\n },\n {\n \"type\": \"deriving\",\n \"named\": false\n },\n {\n \"type\": \"do\",\n \"named\": false\n },\n {\n \"type\": \"e\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": false\n },\n {\n \"type\": \"export\",\n \"named\": false\n },\n {\n \"type\": \"family\",\n \"named\": false\n },\n {\n \"type\": \"float\",\n \"named\": true\n },\n {\n \"type\": \"forall\",\n \"named\": false\n },\n {\n \"type\": \"foreign\",\n \"named\": false\n },\n {\n \"type\": \"group\",\n \"named\": false\n },\n {\n \"type\": \"haddock\",\n \"named\": true\n },\n {\n \"type\": \"hiding\",\n \"named\": false\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"implicit_variable\",\n \"named\": true\n },\n {\n \"type\": \"import\",\n \"named\": false\n },\n {\n \"type\": \"import_package\",\n \"named\": true\n },\n {\n \"type\": \"in\",\n \"named\": false\n },\n {\n \"type\": \"infix\",\n \"named\": false\n },\n {\n \"type\": \"infixl\",\n \"named\": false\n },\n {\n \"type\": \"infixr\",\n \"named\": false\n },\n {\n \"type\": \"instance\",\n \"named\": false\n },\n {\n \"type\": \"label\",\n \"named\": true\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"mdo\",\n \"named\": false\n },\n {\n \"type\": \"module\",\n \"named\": false\n },\n {\n \"type\": \"module_id\",\n \"named\": true\n },\n {\n \"type\": \"name\",\n \"named\": true\n },\n {\n \"type\": \"newtype\",\n \"named\": false\n },\n {\n \"type\": \"nominal\",\n \"named\": false\n },\n {\n \"type\": \"of\",\n \"named\": false\n },\n {\n \"type\": \"p\",\n \"named\": false\n },\n {\n \"type\": \"pattern\",\n \"named\": false\n },\n {\n \"type\": \"phantom\",\n \"named\": false\n },\n {\n \"type\": \"pragma\",\n \"named\": true\n },\n {\n \"type\": \"qualified\",\n \"named\": false\n },\n {\n \"type\": \"quasiquote_body\",\n \"named\": true\n },\n {\n \"type\": \"rec\",\n \"named\": false\n },\n {\n \"type\": \"representational\",\n \"named\": false\n },\n {\n \"type\": \"role\",\n \"named\": false\n },\n {\n \"type\": \"safety\",\n \"named\": true\n },\n {\n \"type\": \"stock\",\n \"named\": false\n },\n {\n \"type\": \"string\",\n \"named\": true\n },\n {\n \"type\": \"t\",\n \"named\": false\n },\n {\n \"type\": \"then\",\n \"named\": false\n },\n {\n \"type\": \"type\",\n \"named\": false\n },\n {\n \"type\": \"using\",\n \"named\": false\n },\n {\n \"type\": \"variable\",\n \"named\": true\n },\n {\n \"type\": \"via\",\n \"named\": false\n },\n {\n \"type\": \"where\",\n \"named\": false\n },\n {\n \"type\": \"{\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"|]\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n },\n {\n \"type\": \"||]\",\n \"named\": false\n },\n {\n \"type\": \"}\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n },\n {\n \"type\": \"\u{2190}\",\n \"named\": false\n },\n {\n \"type\": \"\u{2192}\",\n \"named\": false\n },\n {\n \"type\": \"\u{21d2}\",\n \"named\": false\n },\n {\n \"type\": \"\u{2200}\",\n \"named\": false\n },\n {\n \"type\": \"\u{2237}\",\n \"named\": false\n },\n {\n \"type\": \"\u{22b8}\",\n \"named\": false\n },\n {\n \"type\": \"\u{2605}\",\n \"named\": false\n },\n {\n \"type\": \"\u{27e6}\",\n \"named\": false\n },\n {\n \"type\": \"\u{27e7}\",\n \"named\": false\n }\n]";
Expand description
The content of the node-types.json
file for this grammar.