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

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