pub const NODE_TYPES: &'static str = "[\n  {\n    \"type\": \"anonymous_function_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"expr\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"param\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"arrow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"backslash\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"anything_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"underscore\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"as_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"as\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"bin_op_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"part\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"block_comment\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"case_of_branch\",\n    \"named\": true,\n    \"fields\": {\n      \"expr\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\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    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"arrow\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_of_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"branch\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"case_of_branch\",\n            \"named\": true\n          }\n        ]\n      },\n      \"expr\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case\",\n          \"named\": true\n        },\n        {\n          \"type\": \"of\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"char_constant_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"close_char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"invalid_string_escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"open_char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"regular_string_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_escape\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cons_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"part\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"anything_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cons_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"union_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"exposed_operator\",\n    \"named\": true,\n    \"fields\": {\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"exposed_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"exposed_union_constructors\",\n          \"named\": true\n        },\n        {\n          \"type\": \"upper_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exposed_union_constructors\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"double_dot\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exposed_value\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exposing_list\",\n    \"named\": true,\n    \"fields\": {\n      \"doubleDot\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"double_dot\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"exposed_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exposed_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exposed_value\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exposing\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field\",\n    \"named\": true,\n    \"fields\": {\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_case_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"eq\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_access_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_accessor_function_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field_type\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeExpression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"colon\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"file\",\n    \"named\": true,\n    \"fields\": {\n      \"moduleDeclaration\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"module_declaration\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"import_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"infix_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"port_annotation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_alias_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_annotation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_call_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_declaration_left\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"anything_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"glsl_code_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"content\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"glsl_content\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"if_else_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"exprList\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"import_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"asClause\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"as_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"exposing\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"exposing_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"moduleName\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_qid\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"import\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"infix_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"associativity\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"precedence\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"eq\",\n          \"named\": true\n        },\n        {\n          \"type\": \"infix\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_in_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"valueDeclaration\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"value_declaration\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"type_annotation\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"exprList\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"list_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"part\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"lower_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lower_type_name\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"module_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"exposing\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"exposing_list\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_qid\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"effect\",\n          \"named\": true\n        },\n        {\n          \"type\": \"module\",\n          \"named\": true\n        },\n        {\n          \"type\": \"port\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"where\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"negate_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"anonymous_function_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_of_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char_constant_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_accessor_function_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"glsl_code_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_else_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_in_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"negate_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_constant_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_as_function_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_constant_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"nullary_constructor_argument_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"upper_case_qid\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"number_constant_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"operator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"operator_as_function_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"operator_identifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"parenthesized_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"child\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anything_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cons_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"union_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"patternAs\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"as\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"port_annotation\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeExpression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"colon\",\n          \"named\": true\n        },\n        {\n          \"type\": \"port\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_base_identifier\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"baseRecord\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"record_base_identifier\",\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      }\n    }\n  },\n  {\n    \"type\": \"record_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"patternList\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"record_type\",\n    \"named\": true,\n    \"fields\": {\n      \"baseRecord\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"record_base_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"fieldType\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"field_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"string_constant_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"close_quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"invalid_string_escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"open_quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"regular_string_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_escape\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"expr\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"tuple_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"tuple_type\",\n    \"named\": true,\n    \"fields\": {\n      \"typeExpression\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"unitExpr\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"type_alias_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeExpression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeVariable\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"lower_type_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"eq\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_annotation\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"lower_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeExpression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"colon\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"typeName\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"lower_type_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"unionVariant\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"union_variant\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"eq\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"part\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"record_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_variable\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"arrow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_ref\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_ref\",\n    \"named\": true,\n    \"fields\": {\n      \"part\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"record_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_variable\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"upper_case_qid\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"type_variable\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"union_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"argPattern\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"anything_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lower_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nullary_constructor_argument_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"constructor\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_qid\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"union_variant\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"part\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"record_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"type_variable\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"line_comment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unit_expr\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"upper_case_qid\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"upper_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"value_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"anonymous_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bin_op_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_of_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_accessor_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"glsl_code_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_else_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_in_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"negate_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_as_function_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_constant_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"functionDeclarationLeft\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"function_declaration_left\",\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    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"eq\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"value_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"upper_case_qid\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_qid\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"value_qid\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lower_case_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"upper_case_identifier\",\n          \"named\": true\n        }\n      ]\n    }\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\": \"<|\",\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\": \"alias\",\n    \"named\": true\n  },\n  {\n    \"type\": \"arrow\",\n    \"named\": true\n  },\n  {\n    \"type\": \"as\",\n    \"named\": true\n  },\n  {\n    \"type\": \"backslash\",\n    \"named\": true\n  },\n  {\n    \"type\": \"case\",\n    \"named\": true\n  },\n  {\n    \"type\": \"close_char\",\n    \"named\": true\n  },\n  {\n    \"type\": \"close_quote\",\n    \"named\": true\n  },\n  {\n    \"type\": \"colon\",\n    \"named\": true\n  },\n  {\n    \"type\": \"dot\",\n    \"named\": true\n  },\n  {\n    \"type\": \"double_dot\",\n    \"named\": true\n  },\n  {\n    \"type\": \"effect\",\n    \"named\": true\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"eq\",\n    \"named\": true\n  },\n  {\n    \"type\": \"exposing\",\n    \"named\": true\n  },\n  {\n    \"type\": \"glsl_content\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"import\",\n    \"named\": true\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"infix\",\n    \"named\": true\n  },\n  {\n    \"type\": \"invalid_string_escape\",\n    \"named\": true\n  },\n  {\n    \"type\": \"let\",\n    \"named\": false\n  },\n  {\n    \"type\": \"line_comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"lower_case_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"module\",\n    \"named\": true\n  },\n  {\n    \"type\": \"number_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"of\",\n    \"named\": true\n  },\n  {\n    \"type\": \"open_char\",\n    \"named\": true\n  },\n  {\n    \"type\": \"open_quote\",\n    \"named\": true\n  },\n  {\n    \"type\": \"port\",\n    \"named\": true\n  },\n  {\n    \"type\": \"regular_string_part\",\n    \"named\": true\n  },\n  {\n    \"type\": \"string_escape\",\n    \"named\": true\n  },\n  {\n    \"type\": \"then\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type\",\n    \"named\": true\n  },\n  {\n    \"type\": \"underscore\",\n    \"named\": true\n  },\n  {\n    \"type\": \"upper_case_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"where\",\n    \"named\": true\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]";
Expand description

The content of the node-types.json file for this grammar.