[
  {
    "type": "binary_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "const_decl",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "for_loop",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "let_decl",
          "named": true
        },
        {
          "type": "match_expression",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "while_loop",
          "named": true
        }
      ]
    }
  },
  {
    "type": "boolean_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "call_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "const_decl",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "generic_type",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "reference_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "binary_expression",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "field_access",
            "named": true
          },
          {
            "type": "null_literal",
            "named": true
          },
          {
            "type": "number_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pipeline_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "visibility",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_decl",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "visibility",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_access",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_decl",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "generic_type",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "reference_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "for_loop",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_decl",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "params": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parameter_list",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "generic_type",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "reference_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "visibility",
          "named": true
        }
      ]
    }
  },
  {
    "type": "generic_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "reference_type",
          "named": true
        },
        {
          "type": "tuple_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "impl_block",
    "named": true,
    "fields": {
      "target": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_decl",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_decl",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "path",
          "named": true
        }
      ]
    }
  },
  {
    "type": "let_decl",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "generic_type",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "reference_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "binary_expression",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "field_access",
            "named": true
          },
          {
            "type": "null_literal",
            "named": true
          },
          {
            "type": "number_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "pipeline_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "match_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "null_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "number_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "parameter",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "generic_type",
            "named": true
          },
          {
            "type": "path",
            "named": true
          },
          {
            "type": "primitive_type",
            "named": true
          },
          {
            "type": "reference_type",
            "named": true
          },
          {
            "type": "tuple_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "parameter_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "path",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pipeline_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "primitive_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "reference_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "reference_type",
          "named": true
        },
        {
          "type": "tuple_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "source_file",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "const_decl",
          "named": true
        },
        {
          "type": "enum_decl",
          "named": true
        },
        {
          "type": "function_decl",
          "named": true
        },
        {
          "type": "impl_block",
          "named": true
        },
        {
          "type": "import_decl",
          "named": true
        },
        {
          "type": "let_decl",
          "named": true
        },
        {
          "type": "struct_decl",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_decl",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "field_decl",
          "named": true
        },
        {
          "type": "visibility",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tuple_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "reference_type",
          "named": true
        },
        {
          "type": "tuple_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_alias",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "primitive_type",
          "named": true
        },
        {
          "type": "reference_type",
          "named": true
        },
        {
          "type": "tuple_type",
          "named": true
        },
        {
          "type": "visibility",
          "named": true
        }
      ]
    }
  },
  {
    "type": "visibility",
    "named": true,
    "fields": {}
  },
  {
    "type": "while_loop",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_expression",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "null_literal",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "path",
          "named": true
        },
        {
          "type": "pipeline_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": "any",
    "named": false
  },
  {
    "type": "block_comment",
    "named": true,
    "extra": true
  },
  {
    "type": "bool",
    "named": false
  },
  {
    "type": "byte",
    "named": false
  },
  {
    "type": "char",
    "named": false
  },
  {
    "type": "const",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "extern",
    "named": false
  },
  {
    "type": "f32",
    "named": false
  },
  {
    "type": "f64",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "fn",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "i128",
    "named": false
  },
  {
    "type": "i16",
    "named": false
  },
  {
    "type": "i32",
    "named": false
  },
  {
    "type": "i64",
    "named": false
  },
  {
    "type": "i8",
    "named": false
  },
  {
    "type": "identifier",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "impl",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "int",
    "named": false
  },
  {
    "type": "isize",
    "named": false
  },
  {
    "type": "let",
    "named": false
  },
  {
    "type": "line_comment",
    "named": true,
    "extra": true
  },
  {
    "type": "match",
    "named": false
  },
  {
    "type": "mut",
    "named": false
  },
  {
    "type": "never",
    "named": false
  },
  {
    "type": "nil",
    "named": false
  },
  {
    "type": "none",
    "named": false
  },
  {
    "type": "null",
    "named": false
  },
  {
    "type": "priv",
    "named": false
  },
  {
    "type": "pub",
    "named": false
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "str",
    "named": false
  },
  {
    "type": "string",
    "named": false
  },
  {
    "type": "string_literal",
    "named": true
  },
  {
    "type": "struct",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "type",
    "named": false
  },
  {
    "type": "u128",
    "named": false
  },
  {
    "type": "u16",
    "named": false
  },
  {
    "type": "u32",
    "named": false
  },
  {
    "type": "u64",
    "named": false
  },
  {
    "type": "u8",
    "named": false
  },
  {
    "type": "uint",
    "named": false
  },
  {
    "type": "use",
    "named": false
  },
  {
    "type": "usize",
    "named": false
  },
  {
    "type": "void",
    "named": false
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|>",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  }
]