//! > Test parsing code, without trivia.

//! > test_runner_name
test_full_parser_tree(expect_diagnostics: true)

//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test1.cairo

//! > print_trivia
false

//! > print_colors
false

//! > expected_diagnostics
error[E1000]: Skipped tokens. Expected: Const/Enum/ExternFunction/ExternType/Function/Impl/InlineMacro/Module/Struct/Trait/TypeAlias/Use or an attribute.
 --> src/parser_test_data/cairo_test_files/test1.cairo:6:1
;
^

error[E1000]: Skipped tokens. Expected: parameter.
 --> src/parser_test_data/cairo_test_files/test1.cairo:7:8
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
       ^

error[E1000]: Skipped tokens. Expected: parameter.
 --> src/parser_test_data/cairo_test_files/test1.cairo:7:19
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
                  ^

error[E1001]: Missing token '}'.
 --> src/parser_test_data/cairo_test_files/test1.cairo:32:14
    return x;
             ^

error[E1023]: Missing tokens. Expected an item after attributes.
 --> src/parser_test_data/cairo_test_files/test1.cairo:64:26
#[attribute_without_item]
                         ^

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   ├── child #0 (kind: ItemModule)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── module_kw (kind: TokenModule): 'mod'
    │   │   ├── name (kind: TokenIdentifier): 'submod'
    │   │   └── body (kind: TokenSemicolon): ';'
    │   ├── child #1 (kind: ItemUse)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── use_kw (kind: TokenUse): 'use'
    │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   ├── use_path (kind: UsePathSingle)
    │   │   │   ├── ident (kind: PathSegmentSimple)
    │   │   │   │   └── ident (kind: TokenIdentifier): 'submod'
    │   │   │   ├── colon_colon (kind: TokenColonColon): '::'
    │   │   │   └── use_path (kind: UsePathLeaf)
    │   │   │       ├── ident (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TokenIdentifier): 'something'
    │   │   │       └── alias_clause (kind: OptionAliasClauseEmpty) []
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   ├── child #2 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TokenFunction): 'fn'
    │   │   │   ├── name (kind: TokenIdentifier): 'foo'
    │   │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   ├── item #0 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │   │       │   │   ├── name (kind: TokenIdentifier): 'var1'
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TokenColon): ':'
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TokenIdentifier): 'int'
    │   │   │       │   ├── separator #0 (kind: TokenComma): ','
    │   │   │       │   ├── item #1 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList)
    │   │   │       │   │   │   ├── child #0 (kind: TokenMut): 'mut'
    │   │   │       │   │   │   └── child #1 (kind: TokenRef): 'ref'
    │   │   │       │   │   ├── name (kind: TokenIdentifier): 'var2'
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TokenColon): ':'
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TokenIdentifier): 'felt252'
    │   │   │       │   └── separator #1 (kind: TokenComma): ','
    │   │   │       ├── rparen (kind: TokenRParen): ')'
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TokenArrow): '->'
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TokenIdentifier): 'int'
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TokenLBrace): '{'
    │   │       ├── statements (kind: StatementList)
    │   │       │   ├── child #0 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'bla3'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprUnary)
    │   │       │   │   │   ├── op (kind: TokenMinus): '-'
    │   │       │   │   │   └── expr (kind: ExprUnary)
    │   │       │   │   │       ├── op (kind: TokenMinus): '-'
    │   │       │   │   │       └── expr (kind: TokenLiteralNumber): '7'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #1 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'bla4'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprUnary)
    │   │       │   │   │   ├── op (kind: TokenMinus): '-'
    │   │       │   │   │   └── expr (kind: ExprUnary)
    │   │       │   │   │       ├── op (kind: TokenNot): '!'
    │   │       │   │   │       └── expr (kind: ExprUnary)
    │   │       │   │   │           ├── op (kind: TokenMinus): '-'
    │   │       │   │   │           └── expr (kind: ExprUnary)
    │   │       │   │   │               ├── op (kind: TokenNot): '!'
    │   │       │   │   │               └── expr (kind: TokenLiteralNumber): '8'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #2 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: TokenLiteralNumber): '1'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #3 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'y'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprMatch)
    │   │       │   │   │   ├── match_kw (kind: TokenMatch): 'match'
    │   │       │   │   │   ├── expr (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │   ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │   ├── arms (kind: MatchArms)
    │   │       │   │   │   │   ├── item #0 (kind: MatchArm)
    │   │       │   │   │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │   │   │   └── item #0 (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │   │   └── expression (kind: ExprBlock)
    │   │       │   │   │   │   │       ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │   │   │       ├── statements (kind: StatementList)
    │   │       │   │   │   │   │       │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │       │       ├── expr (kind: TokenLiteralNumber): '1'
    │   │       │   │   │   │   │       │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   │       └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │       │   │   │   │   ├── item #1 (kind: MatchArm)
    │   │       │   │   │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │   │   │   └── item #0 (kind: TokenUnderscore): '_'
    │   │       │   │   │   │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │   │   └── expression (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │   └── separator #1 (kind: TokenComma): ','
    │   │       │   │   │   └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #4 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'z'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprIf)
    │   │       │   │   │   ├── if_kw (kind: TokenIf): 'if'
    │   │       │   │   │   ├── conditions (kind: ConditionListAnd)
    │   │       │   │   │   │   └── item #0 (kind: ConditionExpr)
    │   │       │   │   │   │       └── expr (kind: ExprBinary)
    │   │       │   │   │   │           ├── lhs (kind: ExprBinary)
    │   │       │   │   │   │           │   ├── lhs (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │           │   ├── op (kind: TokenPlus): '+'
    │   │       │   │   │   │           │   └── rhs (kind: ExprPath)
    │   │       │   │   │   │           │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │           │       └── segments (kind: ExprPathInner)
    │   │       │   │   │   │           │           └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           │               └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │           ├── op (kind: TokenEqEq): '=='
    │   │       │   │   │   │           └── rhs (kind: ExprPath)
    │   │       │   │   │   │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │               └── segments (kind: ExprPathInner)
    │   │       │   │   │   │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │                       └── ident (kind: TokenIdentifier): 'y'
    │   │       │   │   │   ├── if_block (kind: ExprBlock)
    │   │       │   │   │   │   ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │   │   ├── statements (kind: StatementList)
    │   │       │   │   │   │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │       ├── expr (kind: TokenLiteralNumber): '1'
    │   │       │   │   │   │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   │   └── else_clause (kind: ElseClause)
    │   │       │   │   │       ├── else_kw (kind: TokenElse): 'else'
    │   │       │   │   │       └── else_block_or_if (kind: ExprBlock)
    │   │       │   │   │           ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │           ├── statements (kind: StatementList)
    │   │       │   │   │           │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │           │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │           │       ├── expr (kind: TokenLiteralNumber): '2'
    │   │       │   │   │           │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │           └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #5 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'block_combination'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprBinary)
    │   │       │   │   │   ├── lhs (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprBlock)
    │   │       │   │   │   │   │   ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │   │   │   ├── statements (kind: StatementList)
    │   │       │   │   │   │   │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │   │       ├── expr (kind: TokenLiteralNumber): '5'
    │   │       │   │   │   │   │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   │   └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   │   │   ├── op (kind: TokenPlus): '+'
    │   │       │   │   │   │   └── rhs (kind: ExprMatch)
    │   │       │   │   │   │       ├── match_kw (kind: TokenMatch): 'match'
    │   │       │   │   │   │       ├── expr (kind: ExprPath)
    │   │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │       ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │   │       ├── arms (kind: MatchArms)
    │   │       │   │   │   │       │   ├── item #0 (kind: MatchArm)
    │   │       │   │   │   │       │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │       │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │   │   │   │       │   │   │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │   │       │       │   └── ident (kind: TokenIdentifier): 'E'
    │   │       │   │   │   │       │   │   │       │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │       │   │   │   │       │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │   │       │           └── ident (kind: TokenIdentifier): 'V1'
    │   │       │   │   │   │       │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │   │   │   │       │   │   │           ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │   │       │   │   │           ├── pattern (kind: TokenUnderscore): '_'
    │   │       │   │   │   │       │   │   │           └── rparen (kind: TokenRParen): ')'
    │   │       │   │   │   │       │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │       │   │   └── expression (kind: TokenLiteralNumber): '4'
    │   │       │   │   │   │       │   ├── separator #0 (kind: TokenComma): ','
    │   │       │   │   │   │       │   └── item #1 (kind: MatchArm)
    │   │       │   │   │   │       │       ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │       │       │   └── item #0 (kind: PatternEnum)
    │   │       │   │   │   │       │       │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │       │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │       │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │       │       │       │   └── ident (kind: TokenIdentifier): 'E'
    │   │       │   │   │   │       │       │       │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │       │   │   │   │       │       │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │       │       │           └── ident (kind: TokenIdentifier): 'V2'
    │   │       │   │   │   │       │       │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │   │   │   │       │       │           ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │   │       │       │           ├── pattern (kind: TokenUnderscore): '_'
    │   │       │   │   │   │       │       │           └── rparen (kind: TokenRParen): ')'
    │   │       │   │   │   │       │       ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │       │       └── expression (kind: TokenLiteralNumber): '2'
    │   │       │   │   │   │       └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   │   ├── op (kind: TokenMinus): '-'
    │   │       │   │   │   └── rhs (kind: ExprIf)
    │   │       │   │   │       ├── if_kw (kind: TokenIf): 'if'
    │   │       │   │   │       ├── conditions (kind: ConditionListAnd)
    │   │       │   │   │       │   └── item #0 (kind: ConditionExpr)
    │   │       │   │   │       │       └── expr (kind: ExprPath)
    │   │       │   │   │       │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │           └── segments (kind: ExprPathInner)
    │   │       │   │   │       │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                   └── ident (kind: TokenIdentifier): 'cond'
    │   │       │   │   │       ├── if_block (kind: ExprBlock)
    │   │       │   │   │       │   ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │       │   ├── statements (kind: StatementList)
    │   │       │   │   │       │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │       │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │       │   │       ├── expr (kind: TokenLiteralNumber): '32'
    │   │       │   │   │       │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │       │   └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   │       └── else_clause (kind: ElseClause)
    │   │       │   │   │           ├── else_kw (kind: TokenElse): 'else'
    │   │       │   │   │           └── else_block_or_if (kind: ExprBlock)
    │   │       │   │   │               ├── lbrace (kind: TokenLBrace): '{'
    │   │       │   │   │               ├── statements (kind: StatementList)
    │   │       │   │   │               │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │               │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │               │       ├── expr (kind: TokenLiteralNumber): '1'
    │   │       │   │   │               │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │               └── rbrace (kind: TokenRBrace): '}'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #6 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'w'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TokenIdentifier): 'calc_with_error'
    │   │       │   │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │   │       │   ├── item #0 (kind: Arg)
    │   │       │   │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │   │   └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │   │       └── value (kind: ExprPath)
    │   │       │   │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │                   └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │       │   ├── separator #0 (kind: TokenComma): ','
    │   │       │   │   │   │       │   ├── item #1 (kind: Arg)
    │   │       │   │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │   │   └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │   │       └── value (kind: ExprErrorPropagate)
    │   │       │   │   │   │       │   │           ├── expr (kind: ExprPath)
    │   │       │   │   │   │       │   │           │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │           │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │           │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │           │           └── ident (kind: TokenIdentifier): 'y'
    │   │       │   │   │   │       │   │           └── op (kind: TokenQuestionMark): '?'
    │   │       │   │   │   │       │   ├── separator #1 (kind: TokenComma): ','
    │   │       │   │   │   │       │   └── item #2 (kind: Arg)
    │   │       │   │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │                       └── ident (kind: TokenIdentifier): 'z'
    │   │       │   │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │       │   │   │   └── op (kind: TokenQuestionMark): '?'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #7 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'member_value'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TokenIdentifier): 'value'
    │   │       │   │   │   │   ├── op (kind: TokenDot): '.'
    │   │       │   │   │   │   └── rhs (kind: ExprPath)
    │   │       │   │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │   │           └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │               └── ident (kind: TokenIdentifier): 'member'
    │   │       │   │   │   └── op (kind: TokenQuestionMark): '?'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #8 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'method_return'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TokenIdentifier): 'value'
    │   │       │   │   │   │   ├── op (kind: TokenDot): '.'
    │   │       │   │   │   │   └── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │           └── ident (kind: TokenIdentifier): 'method'
    │   │       │   │   │   │       └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │   │           ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │   │           ├── arguments (kind: ArgList) []
    │   │       │   │   │   │           └── rparen (kind: TokenRParen): ')'
    │   │       │   │   │   └── op (kind: TokenQuestionMark): '?'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #9 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: TokenTrue): 'true'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #10 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TokenIdentifier): 'z'
    │   │       │   │   │   ├── op (kind: TokenEq): '='
    │   │       │   │   │   └── rhs (kind: TokenLiteralNumber): '5'
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #11 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TokenIdentifier): 'func1'
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                       └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #12 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   ├── type_clause (kind: TypeClause)
    │   │       │   │   │   ├── colon (kind: TokenColon): ':'
    │   │       │   │   │   └── ty (kind: ExprPath)
    │   │       │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │           └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │               ├── ident (kind: TokenIdentifier): 'Option'
    │   │       │   │   │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │       │   │   │               └── generic_args (kind: GenericArgs)
    │   │       │   │   │                   ├── langle (kind: TokenLT): '<'
    │   │       │   │   │                   ├── generic_args (kind: GenericArgList)
    │   │       │   │   │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │                   │       └── value (kind: ExprPath)
    │   │       │   │   │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │                   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │                   │                   └── ident (kind: TokenIdentifier): 'felt252'
    │   │       │   │   │                   └── rangle (kind: TokenGT): '>'
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TokenIdentifier): 'Some'
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: TokenLiteralNumber): '5'
    │   │       │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #13 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TokenLet): 'let'
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   ├── type_clause (kind: TypeClause)
    │   │       │   │   │   ├── colon (kind: TokenColon): ':'
    │   │       │   │   │   └── ty (kind: ExprPath)
    │   │       │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │           └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │               ├── ident (kind: TokenIdentifier): 'Option'
    │   │       │   │   │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │       │   │   │               └── generic_args (kind: GenericArgs)
    │   │       │   │   │                   ├── langle (kind: TokenLT): '<'
    │   │       │   │   │                   ├── generic_args (kind: GenericArgList)
    │   │       │   │   │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │                   │       └── value (kind: ExprPath)
    │   │       │   │   │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │                   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │                   │                   └── ident (kind: TokenIdentifier): 'felt252'
    │   │       │   │   │                   └── rangle (kind: TokenGT): '>'
    │   │       │   │   ├── eq (kind: TokenEq): '='
    │   │       │   │   ├── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TokenIdentifier): 'Some'
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: TokenLiteralNumber): '5'
    │   │       │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   │       │   ├── child #14 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │   │           ├── ident (kind: TokenIdentifier): 'func2'
    │   │       │   │   │   │           ├── separator (kind: TokenColonColon): '::'
    │   │       │   │   │   │           └── generic_args (kind: GenericArgs)
    │   │       │   │   │   │               ├── langle (kind: TokenLT): '<'
    │   │       │   │   │   │               ├── generic_args (kind: GenericArgList)
    │   │       │   │   │   │               │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │   │               │       └── value (kind: ExprPath)
    │   │       │   │   │   │               │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │               │           └── segments (kind: ExprPathInner)
    │   │       │   │   │   │               │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │               │                   └── ident (kind: TokenIdentifier): 'int'
    │   │       │   │   │   │               └── rangle (kind: TokenGT): '>'
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                       └── ident (kind: TokenIdentifier): 'x'
    │   │       │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │       │   │   └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   └── child #15 (kind: StatementReturn)
    │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │       ├── return_kw (kind: TokenReturn): 'return'
    │   │       │       ├── expr_clause (kind: ExprClause)
    │   │       │       │   └── expr (kind: ExprPath)
    │   │       │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │       └── segments (kind: ExprPathInner)
    │   │       │       │           └── item #0 (kind: PathSegmentSimple)
    │   │       │       │               └── ident (kind: TokenIdentifier): 'x'
    │   │       │       └── semicolon (kind: TokenSemicolon): ';'
    │   │       └── rbrace: Missing
    │   ├── child #3 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TokenFunction): 'fn'
    │   │   │   ├── name (kind: TokenIdentifier): 'bar'
    │   │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   │   └── name (kind: TokenIdentifier): 'A'
    │   │   │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │   │       └── name (kind: TokenIdentifier): 'B'
    │   │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── parameters (kind: ParamList) []
    │   │   │       ├── rparen (kind: TokenRParen): ')'
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TokenArrow): '->'
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TokenIdentifier): 'felt252'
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TokenLBrace): '{'
    │   │       ├── statements (kind: StatementList) []
    │   │       └── rbrace (kind: TokenRBrace): '}'
    │   ├── child #4 (kind: ItemExternType)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── extern_kw (kind: TokenExtern): 'extern'
    │   │   ├── type_kw (kind: TokenType): 'type'
    │   │   ├── name (kind: TokenIdentifier): 'S'
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   ├── generic_params (kind: GenericParamList) []
    │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   ├── child #5 (kind: ItemExternFunction)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── extern_kw (kind: TokenExtern): 'extern'
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TokenFunction): 'fn'
    │   │   │   ├── name (kind: TokenIdentifier): 'glee'
    │   │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   │   └── name (kind: TokenIdentifier): 'A'
    │   │   │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │   │       └── name (kind: TokenIdentifier): 'b'
    │   │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   ├── item #0 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │   │       │   │   ├── name (kind: TokenIdentifier): 'var1'
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TokenColon): ':'
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TokenIdentifier): 'int'
    │   │   │       │   └── separator #0 (kind: TokenComma): ','
    │   │   │       ├── rparen (kind: TokenRParen): ')'
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TokenArrow): '->'
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │           │   └── ident (kind: TokenIdentifier): 'crate'
    │   │   │       │           ├── separator #0 (kind: TokenColonColon): '::'
    │   │   │       │           └── item #1 (kind: PathSegmentWithGenericArgs)
    │   │   │       │               ├── ident (kind: TokenIdentifier): 'S'
    │   │   │       │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │   │       │               └── generic_args (kind: GenericArgs)
    │   │   │       │                   ├── langle (kind: TokenLT): '<'
    │   │   │       │                   ├── generic_args (kind: GenericArgList)
    │   │   │       │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │   │       │                   │       └── value (kind: ExprPath)
    │   │   │       │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │                   │           └── segments (kind: ExprPathInner)
    │   │   │       │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │                   │                   └── ident (kind: TokenIdentifier): 'int'
    │   │   │       │                   └── rangle (kind: TokenGT): '>'
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: TokenNoPanic): 'nopanic'
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   ├── child #6 (kind: ItemStruct)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── struct_kw (kind: TokenStruct): 'struct'
    │   │   ├── name (kind: TokenIdentifier): 'A'
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   └── name (kind: TokenIdentifier): 'A'
    │   │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TokenIdentifier): 'B'
    │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   ├── lbrace (kind: TokenLBrace): '{'
    │   │   ├── members (kind: MemberList)
    │   │   │   ├── item #0 (kind: Member)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── visibility (kind: VisibilityPub)
    │   │   │   │   │   ├── pub_kw (kind: TokenPub): 'pub'
    │   │   │   │   │   └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
    │   │   │   │   ├── name (kind: TokenIdentifier): 'member'
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TokenColon): ':'
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TokenIdentifier): 'bool'
    │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   └── item #1 (kind: Member)
    │   │   │       ├── attributes (kind: AttributeList)
    │   │   │       │   └── child #0 (kind: Attribute)
    │   │   │       │       ├── hash (kind: TokenHash): '#'
    │   │   │       │       ├── lbrack (kind: TokenLBrack): '['
    │   │   │       │       ├── attr (kind: ExprPath)
    │   │   │       │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       │   └── segments (kind: ExprPathInner)
    │   │   │       │       │       └── item #0 (kind: PathSegmentSimple)
    │   │   │       │       │           └── ident (kind: TokenIdentifier): 'annot'
    │   │   │       │       ├── arguments (kind: ArgListParenthesized)
    │   │   │       │       │   ├── lparen (kind: TokenLParen): '('
    │   │   │       │       │   ├── arguments (kind: ArgList)
    │   │   │       │       │   │   └── item #0 (kind: Arg)
    │   │   │       │       │   │       ├── modifiers (kind: ModifierList) []
    │   │   │       │       │   │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │   │       │       │   │           └── value (kind: ExprPath)
    │   │   │       │       │   │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       │   │               └── segments (kind: ExprPathInner)
    │   │   │       │       │   │                   └── item #0 (kind: PathSegmentSimple)
    │   │   │       │       │   │                       └── ident (kind: TokenIdentifier): 'a'
    │   │   │       │       │   └── rparen (kind: TokenRParen): ')'
    │   │   │       │       └── rbrack (kind: TokenRBrack): ']'
    │   │   │       ├── visibility (kind: VisibilityDefault) []
    │   │   │       ├── name (kind: TokenIdentifier): 'member2'
    │   │   │       └── type_clause (kind: TypeClause)
    │   │   │           ├── colon (kind: TokenColon): ':'
    │   │   │           └── ty (kind: ExprListParenthesized)
    │   │   │               ├── lparen (kind: TokenLParen): '('
    │   │   │               ├── expressions (kind: ExprList)
    │   │   │               │   ├── item #0 (kind: ExprPath)
    │   │   │               │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │   │   └── segments (kind: ExprPathInner)
    │   │   │               │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │               │   │           └── ident (kind: TokenIdentifier): 'bool'
    │   │   │               │   ├── separator #0 (kind: TokenComma): ','
    │   │   │               │   ├── item #1 (kind: ExprPath)
    │   │   │               │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │   │   └── segments (kind: ExprPathInner)
    │   │   │               │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │               │   │           └── ident (kind: TokenIdentifier): 'felt252'
    │   │   │               │   ├── separator #1 (kind: TokenComma): ','
    │   │   │               │   └── item #2 (kind: ExprListParenthesized)
    │   │   │               │       ├── lparen (kind: TokenLParen): '('
    │   │   │               │       ├── expressions (kind: ExprList) []
    │   │   │               │       └── rparen (kind: TokenRParen): ')'
    │   │   │               └── rparen (kind: TokenRParen): ')'
    │   │   └── rbrace (kind: TokenRBrace): '}'
    │   ├── child #7 (kind: ItemEnum)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityPub)
    │   │   │   ├── pub_kw (kind: TokenPub): 'pub'
    │   │   │   └── argument_clause (kind: VisibilityPubArgumentClause)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── argument (kind: TokenIdentifier): 'crate'
    │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │   ├── enum_kw (kind: TokenEnum): 'enum'
    │   │   ├── name (kind: TokenIdentifier): 'E'
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   └── name (kind: TokenIdentifier): 'A'
    │   │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TokenIdentifier): 'B'
    │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   ├── lbrace (kind: TokenLBrace): '{'
    │   │   ├── variants (kind: VariantList)
    │   │   │   ├── item #0 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TokenIdentifier): 'V1'
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TokenColon): ':'
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TokenIdentifier): 'A'
    │   │   │   ├── separator #0 (kind: TokenComma): ','
    │   │   │   ├── item #1 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TokenIdentifier): 'V2'
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TokenColon): ':'
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TokenIdentifier): 'B'
    │   │   │   ├── separator #1 (kind: TokenComma): ','
    │   │   │   ├── item #2 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TokenIdentifier): 'VEmpty'
    │   │   │   │   └── type_clause (kind: OptionTypeClauseEmpty) []
    │   │   │   └── separator #2 (kind: TokenComma): ','
    │   │   └── rbrace (kind: TokenRBrace): '}'
    │   ├── child #8 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TokenFunction): 'fn'
    │   │   │   ├── name (kind: TokenIdentifier): 'match_e_enum'
    │   │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   └── item #0 (kind: Param)
    │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │   │       │       ├── name (kind: TokenIdentifier): 'e'
    │   │   │       │       └── type_clause (kind: TypeClause)
    │   │   │       │           ├── colon (kind: TokenColon): ':'
    │   │   │       │           └── ty (kind: ExprPath)
    │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │               └── segments (kind: ExprPathInner)
    │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │   │       │                       └── ident (kind: TokenIdentifier): 'E'
    │   │   │       ├── rparen (kind: TokenRParen): ')'
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TokenArrow): '->'
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TokenIdentifier): 'felt252'
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TokenLBrace): '{'
    │   │       ├── statements (kind: StatementList)
    │   │       │   └── child #0 (kind: StatementExpr)
    │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │       ├── expr (kind: ExprMatch)
    │   │       │       │   ├── match_kw (kind: TokenMatch): 'match'
    │   │       │       │   ├── expr (kind: ExprPath)
    │   │       │       │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   └── segments (kind: ExprPathInner)
    │   │       │       │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │           └── ident (kind: TokenIdentifier): 'e'
    │   │       │       │   ├── lbrace (kind: TokenLBrace): '{'
    │   │       │       │   ├── arms (kind: MatchArms)
    │   │       │       │   │   ├── item #0 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TokenIdentifier): 'V1'
    │   │       │       │   │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │       │   │   │   │           ├── lparen (kind: TokenLParen): '('
    │   │       │       │   │   │   │           ├── pattern (kind: TokenUnderscore): '_'
    │   │       │       │   │   │   │           └── rparen (kind: TokenRParen): ')'
    │   │       │       │   │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   └── expression (kind: TokenLiteralNumber): '1'
    │   │       │       │   │   ├── separator #0 (kind: TokenComma): ','
    │   │       │       │   │   ├── item #1 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TokenIdentifier): 'V2'
    │   │       │       │   │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │       │   │   │   │           ├── lparen (kind: TokenLParen): '('
    │   │       │       │   │   │   │           ├── pattern (kind: ExprPath)
    │   │       │       │   │   │   │           │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │           │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │           │       └── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │           │           └── ident (kind: TokenIdentifier): 'x'
    │   │       │       │   │   │   │           └── rparen (kind: TokenRParen): ')'
    │   │       │       │   │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   └── expression (kind: TokenLiteralNumber): '2'
    │   │       │       │   │   ├── separator #1 (kind: TokenComma): ','
    │   │       │       │   │   ├── item #2 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TokenIdentifier): 'VEmpty'
    │   │       │       │   │   │   │       └── pattern (kind: OptionPatternEnumInnerPatternEmpty) []
    │   │       │       │   │   │   ├── arrow (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   └── expression (kind: TokenLiteralNumber): '0'
    │   │       │       │   │   └── separator #2 (kind: TokenComma): ','
    │   │       │       │   └── rbrace (kind: TokenRBrace): '}'
    │   │       │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       └── rbrace (kind: TokenRBrace): '}'
    │   ├── child #9 (kind: ItemTypeAlias)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── type_kw (kind: TokenType): 'type'
    │   │   ├── name (kind: TokenIdentifier): 'Renamed'
    │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   ├── eq (kind: TokenEq): '='
    │   │   ├── ty (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TokenIdentifier): 'submod'
    │   │   │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │   │       ├── item #1 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TokenIdentifier): 'inner'
    │   │   │       ├── separator #1 (kind: TokenColonColon): '::'
    │   │   │       └── item #2 (kind: PathSegmentSimple)
    │   │   │           └── ident (kind: TokenIdentifier): 'Other'
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   ├── child #10 (kind: ItemTypeAlias)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── type_kw (kind: TokenType): 'type'
    │   │   ├── name (kind: TokenIdentifier): 'Generic'
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TokenLT): '<'
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   └── item #0 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TokenIdentifier): 'T'
    │   │   │   └── rangle (kind: TokenGT): '>'
    │   │   ├── eq (kind: TokenEq): '='
    │   │   ├── ty (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TokenIdentifier): 'super'
    │   │   │       ├── separator #0 (kind: TokenColonColon): '::'
    │   │   │       ├── item #1 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TokenIdentifier): 'other'
    │   │   │       ├── separator #1 (kind: TokenColonColon): '::'
    │   │   │       └── item #2 (kind: PathSegmentWithGenericArgs)
    │   │   │           ├── ident (kind: TokenIdentifier): 'OtherGeneric'
    │   │   │           ├── separator (kind: TokenColonColon): '::'
    │   │   │           └── generic_args (kind: GenericArgs)
    │   │   │               ├── langle (kind: TokenLT): '<'
    │   │   │               ├── generic_args (kind: GenericArgList)
    │   │   │               │   └── item #0 (kind: GenericArgUnnamed)
    │   │   │               │       └── value (kind: ExprPath)
    │   │   │               │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │           └── segments (kind: ExprPathInner)
    │   │   │               │               └── item #0 (kind: PathSegmentSimple)
    │   │   │               │                   └── ident (kind: TokenIdentifier): 'T'
    │   │   │               └── rangle (kind: TokenGT): '>'
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   ├── child #11 (kind: ItemInlineMacro)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── path (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │           └── ident (kind: TokenIdentifier): 'inline_item_macro'
    │   │   ├── bang (kind: TokenNot): '!'
    │   │   ├── arguments (kind: TokenTreeNode)
    │   │   │   └── subtree (kind: ParenthesizedTokenTree)
    │   │   │       ├── lparen (kind: TokenLParen): '('
    │   │   │       ├── tokens (kind: TokenList)
    │   │   │       │   ├── child #0 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TokenIdentifier): 'x'
    │   │   │       │   ├── child #1 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TokenComma): ','
    │   │   │       │   ├── child #2 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TokenIdentifier): 'y'
    │   │   │       │   ├── child #3 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TokenComma): ','
    │   │   │       │   └── child #4 (kind: TokenTreeLeaf)
    │   │   │       │       └── leaf (kind: TokenIdentifier): 'z'
    │   │   │       └── rparen (kind: TokenRParen): ')'
    │   │   └── semicolon (kind: TokenSemicolon): ';'
    │   └── child #12: Missing []
    └── eof (kind: TokenEndOfFile).

//! > ==========================================================================

//! > Test parsing code, with trivia.

//! > test_runner_name
test_full_parser_tree(expect_diagnostics: true)

//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test1.cairo

//! > print_trivia
true

//! > print_colors
false

//! > expected_diagnostics
error[E1000]: Skipped tokens. Expected: Const/Enum/ExternFunction/ExternType/Function/Impl/InlineMacro/Module/Struct/Trait/TypeAlias/Use or an attribute.
 --> src/parser_test_data/cairo_test_files/test1.cairo:6:1
;
^

error[E1000]: Skipped tokens. Expected: parameter.
 --> src/parser_test_data/cairo_test_files/test1.cairo:7:8
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
       ^

error[E1000]: Skipped tokens. Expected: parameter.
 --> src/parser_test_data/cairo_test_files/test1.cairo:7:19
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
                  ^

error[E1001]: Missing token '}'.
 --> src/parser_test_data/cairo_test_files/test1.cairo:32:14
    return x;
             ^

error[E1023]: Missing tokens. Expected an item after attributes.
 --> src/parser_test_data/cairo_test_files/test1.cairo:64:26
#[attribute_without_item]
                         ^

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   ├── child #0 (kind: ItemModule)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── module_kw (kind: TerminalModule)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenModule): 'mod'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'submod'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   └── body (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #1 (kind: ItemUse)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── use_kw (kind: TerminalUse)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenUse): 'use'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   ├── use_path (kind: UsePathSingle)
    │   │   │   ├── ident (kind: PathSegmentSimple)
    │   │   │   │   └── ident (kind: TerminalIdentifier)
    │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │       ├── token (kind: TokenIdentifier): 'submod'
    │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── colon_colon (kind: TerminalColonColon)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenColonColon): '::'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   └── use_path (kind: UsePathLeaf)
    │   │   │       ├── ident (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TerminalIdentifier)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenIdentifier): 'something'
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       └── alias_clause (kind: OptionAliasClauseEmpty) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #2 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TerminalFunction)
    │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   ├── child #0 (kind: TokenNewline).
    │   │   │   │   │   ├── child #1 (kind: TokenSingleLineComment): '// Func foo'
    │   │   │   │   │   ├── child #2 (kind: TokenNewline).
    │   │   │   │   │   ├── child #3 (kind: TokenSingleLineComment): '// Second line'
    │   │   │   │   │   ├── child #4 (kind: TokenNewline).
    │   │   │   │   │   ├── child #5 (kind: TokenSkipped): ';'
    │   │   │   │   │   └── child #6 (kind: TokenNewline).
    │   │   │   │   ├── token (kind: TokenFunction): 'fn'
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenIdentifier): 'foo'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   ├── item #0 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │   │       │   │   ├── name (kind: TerminalIdentifier)
    │   │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │       │   │   │   │   └── child #0 (kind: TokenSkipped): ','
    │   │   │       │   │   │   ├── token (kind: TokenIdentifier): 'var1'
    │   │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TerminalColon)
    │   │   │       │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │       │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │       │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │                       ├── token (kind: TokenIdentifier): 'int'
    │   │   │       │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │       │   ├── separator #0 (kind: TerminalComma)
    │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   ├── token (kind: TokenComma): ','
    │   │   │       │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │   ├── item #1 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList)
    │   │   │       │   │   │   ├── child #0 (kind: TerminalMut)
    │   │   │       │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │       │   │   │   │   │   ├── child #0 (kind: TokenSkipped): ','
    │   │   │       │   │   │   │   │   └── child #1 (kind: TokenWhitespace).
    │   │   │       │   │   │   │   ├── token (kind: TokenMut): 'mut'
    │   │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   │   │   └── child #1 (kind: TerminalRef)
    │   │   │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   │       ├── token (kind: TokenRef): 'ref'
    │   │   │       │   │   │       └── trailing_trivia (kind: Trivia)
    │   │   │       │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │   │       │   │   ├── name (kind: TerminalIdentifier)
    │   │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   │   ├── token (kind: TokenIdentifier): 'var2'
    │   │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TerminalColon)
    │   │   │       │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │       │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │       │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │                       ├── token (kind: TokenIdentifier): 'felt252'
    │   │   │       │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │       │   └── separator #1 (kind: TerminalComma)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenComma): ','
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── rparen (kind: TerminalRParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenRParen): ')'
    │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TerminalArrow)
    │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   ├── token (kind: TokenArrow): '->'
    │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TerminalIdentifier)
    │   │   │       │                   ├── leading_trivia (kind: Trivia) []
    │   │   │       │                   ├── token (kind: TokenIdentifier): 'int'
    │   │   │       │                   └── trailing_trivia (kind: Trivia)
    │   │   │       │                       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TerminalLBrace)
    │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   ├── token (kind: TokenLBrace): '{'
    │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │       └── child #0 (kind: TokenNewline).
    │   │       ├── statements (kind: StatementList)
    │   │       │   ├── child #0 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'bla3'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprUnary)
    │   │       │   │   │   ├── op (kind: TerminalMinus)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenMinus): '-'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── expr (kind: ExprUnary)
    │   │       │   │   │       ├── op (kind: TerminalMinus)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenMinus): '-'
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           ├── token (kind: TokenLiteralNumber): '7'
    │   │       │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           ├── child #0 (kind: TokenWhitespace).
    │   │       │   │           ├── child #1 (kind: TokenSingleLineComment): '// succeeds, ok'
    │   │       │   │           └── child #2 (kind: TokenNewline).
    │   │       │   ├── child #1 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'bla4'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprUnary)
    │   │       │   │   │   ├── op (kind: TerminalMinus)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenMinus): '-'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── expr (kind: ExprUnary)
    │   │       │   │   │       ├── op (kind: TerminalNot)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenNot): '!'
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── expr (kind: ExprUnary)
    │   │       │   │   │           ├── op (kind: TerminalMinus)
    │   │       │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           │   ├── token (kind: TokenMinus): '-'
    │   │       │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │           └── expr (kind: ExprUnary)
    │   │       │   │   │               ├── op (kind: TerminalNot)
    │   │       │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               │   ├── token (kind: TokenNot): '!'
    │   │       │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │               └── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   ├── token (kind: TokenLiteralNumber): '8'
    │   │       │   │   │                   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           ├── child #0 (kind: TokenWhitespace).
    │   │       │   │           ├── child #1 (kind: TokenSingleLineComment): '// succeeds, ok'
    │   │       │   │           └── child #2 (kind: TokenNewline).
    │   │       │   ├── child #2 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: TerminalLiteralNumber)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenLiteralNumber): '1'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #3 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'y'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprMatch)
    │   │       │   │   │   ├── match_kw (kind: TerminalMatch)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenMatch): 'match'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── expr (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │   ├── arms (kind: MatchArms)
    │   │       │   │   │   │   ├── item #0 (kind: MatchArm)
    │   │       │   │   │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │   │   │   └── item #0 (kind: TerminalLiteralNumber)
    │   │       │   │   │   │   │   │       ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   │       ├── token (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │   │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │   │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   └── expression (kind: ExprBlock)
    │   │       │   │   │   │   │       ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │       │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │       ├── statements (kind: StatementList)
    │   │       │   │   │   │   │       │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │       │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │       │       │   ├── token (kind: TokenLiteralNumber): '1'
    │   │       │   │   │   │   │       │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │       │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   │       └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │           ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │       │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── token (kind: TokenComma): ','
    │   │       │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │   │   ├── item #1 (kind: MatchArm)
    │   │       │   │   │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │   │   │   └── item #0 (kind: TerminalUnderscore)
    │   │       │   │   │   │   │   │       ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   │       ├── token (kind: TokenUnderscore): '_'
    │   │       │   │   │   │   │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │   │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │   └── expression (kind: TerminalLiteralNumber)
    │   │       │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │       ├── token (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   └── separator #1 (kind: TerminalComma)
    │   │       │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       ├── token (kind: TokenComma): ','
    │   │       │   │   │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           └── child #0 (kind: TokenNewline).
    │   │       │   │   │   └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │       ├── leading_trivia (kind: Trivia)
    │   │       │   │   │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #4 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'z'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprIf)
    │   │       │   │   │   ├── if_kw (kind: TerminalIf)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenIf): 'if'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── conditions (kind: ConditionListAnd)
    │   │       │   │   │   │   └── item #0 (kind: ConditionExpr)
    │   │       │   │   │   │       └── expr (kind: ExprBinary)
    │   │       │   │   │   │           ├── lhs (kind: ExprBinary)
    │   │       │   │   │   │           │   ├── lhs (kind: TerminalLiteralNumber)
    │   │       │   │   │   │           │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │   │   ├── token (kind: TokenLiteralNumber): '0'
    │   │       │   │   │   │           │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │           │   ├── op (kind: TerminalPlus)
    │   │       │   │   │   │           │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │   │   ├── token (kind: TokenPlus): '+'
    │   │       │   │   │   │           │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │           │   └── rhs (kind: ExprPath)
    │   │       │   │   │   │           │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │           │       └── segments (kind: ExprPathInner)
    │   │       │   │   │   │           │           └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           │               └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │           │                   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │                   ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │           │                   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           │                       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │           ├── op (kind: TerminalEqEq)
    │   │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │   ├── token (kind: TokenEqEq): '=='
    │   │       │   │   │   │           │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │           └── rhs (kind: ExprPath)
    │   │       │   │   │   │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │               └── segments (kind: ExprPathInner)
    │   │       │   │   │   │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │                       └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │                           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │                           ├── token (kind: TokenIdentifier): 'y'
    │   │       │   │   │   │                           └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │                               └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── if_block (kind: ExprBlock)
    │   │       │   │   │   │   ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │   │   ├── statements (kind: StatementList)
    │   │       │   │   │   │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │   │   │       │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   │       │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   │       │   ├── token (kind: TokenLiteralNumber): '1'
    │   │       │   │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │   │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │   │       ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   └── else_clause (kind: ElseClause)
    │   │       │   │   │       ├── else_kw (kind: TerminalElse)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenElse): 'else'
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       └── else_block_or_if (kind: ExprBlock)
    │   │       │   │   │           ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │           │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │           │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │           ├── statements (kind: StatementList)
    │   │       │   │   │           │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │           │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │           │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │           │       │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │           │       │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │           │       │   ├── token (kind: TokenLiteralNumber): '2'
    │   │       │   │   │           │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │           │       │       └── child #0 (kind: TokenNewline).
    │   │       │   │   │           │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │           └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia)
    │   │       │   │   │               │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │               ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #5 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'block_combination'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprBinary)
    │   │       │   │   │   ├── lhs (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprBlock)
    │   │       │   │   │   │   │   ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── statements (kind: StatementList)
    │   │       │   │   │   │   │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │   │   │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │   │   │   │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   │       │   ├── token (kind: TokenLiteralNumber): '5'
    │   │       │   │   │   │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │   │   │   └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │       ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │   │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   ├── op (kind: TerminalPlus)
    │   │       │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── token (kind: TokenPlus): '+'
    │   │       │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   └── rhs (kind: ExprMatch)
    │   │       │   │   │   │       ├── match_kw (kind: TerminalMatch)
    │   │       │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── token (kind: TokenMatch): 'match'
    │   │       │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       ├── expr (kind: ExprPath)
    │   │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │       │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       ├── arms (kind: MatchArms)
    │   │       │   │   │   │       │   ├── item #0 (kind: MatchArm)
    │   │       │   │   │   │       │   │   ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │       │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │   │   │   │       │   │   │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │   │       │       │   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │   │   │       │       │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       │       │       ├── token (kind: TokenIdentifier): 'E'
    │   │       │   │   │   │       │   │   │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       │       ├── separator #0 (kind: TerminalColonColon)
    │   │       │   │   │   │       │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       │       │   ├── token (kind: TokenColonColon): '::'
    │   │       │   │   │   │       │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       │               ├── token (kind: TokenIdentifier): 'V1'
    │   │       │   │   │   │       │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │   │   │   │       │   │   │           ├── lparen (kind: TerminalLParen)
    │   │       │   │   │   │       │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │           │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │   │       │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │           ├── pattern (kind: TerminalUnderscore)
    │   │       │   │   │   │       │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │           │   ├── token (kind: TokenUnderscore): '_'
    │   │       │   │   │   │       │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │           └── rparen (kind: TerminalRParen)
    │   │       │   │   │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │               ├── token (kind: TokenRParen): ')'
    │   │       │   │   │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │   │   │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │   │   └── expression (kind: TerminalLiteralNumber)
    │   │       │   │   │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │       ├── token (kind: TokenLiteralNumber): '4'
    │   │       │   │   │   │       │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── separator #0 (kind: TerminalComma)
    │   │       │   │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   ├── token (kind: TokenComma): ','
    │   │       │   │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │   └── item #1 (kind: MatchArm)
    │   │       │   │   │   │       │       ├── patterns (kind: PatternListOr)
    │   │       │   │   │   │       │       │   └── item #0 (kind: PatternEnum)
    │   │       │   │   │   │       │       │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │       │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │       │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │       │       │       │   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │       │       │       │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       │       │       ├── token (kind: TokenIdentifier): 'E'
    │   │       │   │   │   │       │       │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       │       ├── separator #0 (kind: TerminalColonColon)
    │   │       │   │   │   │       │       │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       │       │   ├── token (kind: TokenColonColon): '::'
    │   │       │   │   │   │       │       │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │       │       │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │       │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       │               ├── token (kind: TokenIdentifier): 'V2'
    │   │       │   │   │   │       │       │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │   │   │   │       │       │           ├── lparen (kind: TerminalLParen)
    │   │       │   │   │   │       │       │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │           │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │   │       │       │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │           ├── pattern (kind: TerminalUnderscore)
    │   │       │   │   │   │       │       │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │           │   ├── token (kind: TokenUnderscore): '_'
    │   │       │   │   │   │       │       │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │           └── rparen (kind: TerminalRParen)
    │   │       │   │   │   │       │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │               ├── token (kind: TokenRParen): ')'
    │   │       │   │   │   │       │       │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │       │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │       ├── arrow (kind: TerminalMatchArrow)
    │   │       │   │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │       │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │   │   │   │       │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │       └── expression (kind: TerminalLiteralNumber)
    │   │       │   │   │   │       │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │           ├── token (kind: TokenLiteralNumber): '2'
    │   │       │   │   │   │       │           └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │               └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │   │           └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │               └── child #0 (kind: TokenNewline).
    │   │       │   │   │   ├── op (kind: TerminalMinus)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │   ├── token (kind: TokenMinus): '-'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   └── rhs (kind: ExprIf)
    │   │       │   │   │       ├── if_kw (kind: TerminalIf)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenIf): 'if'
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       ├── conditions (kind: ConditionListAnd)
    │   │       │   │   │       │   └── item #0 (kind: ConditionExpr)
    │   │       │   │   │       │       └── expr (kind: ExprPath)
    │   │       │   │   │       │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │           └── segments (kind: ExprPathInner)
    │   │       │   │   │       │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │       │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │                       ├── token (kind: TokenIdentifier): 'cond'
    │   │       │   │   │       │                       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │                           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       ├── if_block (kind: ExprBlock)
    │   │       │   │   │       │   ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       │   ├── statements (kind: StatementList)
    │   │       │   │   │       │   │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │       │   │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │       │   │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │       │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   │       │   ├── token (kind: TokenLiteralNumber): '32'
    │   │       │   │   │       │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       │   │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │       │   └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │       ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │       │       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       │           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │       └── else_clause (kind: ElseClause)
    │   │       │   │   │           ├── else_kw (kind: TerminalElse)
    │   │       │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           │   ├── token (kind: TokenElse): 'else'
    │   │       │   │   │           │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │           │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │           └── else_block_or_if (kind: ExprBlock)
    │   │       │   │   │               ├── lbrace (kind: TerminalLBrace)
    │   │       │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               │   ├── token (kind: TokenLBrace): '{'
    │   │       │   │   │               │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │               │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │               ├── statements (kind: StatementList)
    │   │       │   │   │               │   └── child #0 (kind: StatementExpr)
    │   │       │   │   │               │       ├── attributes (kind: AttributeList) []
    │   │       │   │   │               │       ├── expr (kind: TerminalLiteralNumber)
    │   │       │   │   │               │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               │       │   ├── token (kind: TokenLiteralNumber): '1'
    │   │       │   │   │               │       │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │               │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │               │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   │   │               └── rbrace (kind: TerminalRBrace)
    │   │       │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   ├── token (kind: TokenRBrace): '}'
    │   │       │   │   │                   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #6 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'w'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │               ├── token (kind: TokenIdentifier): 'calc_with_error'
    │   │       │   │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │   │       ├── lparen (kind: TerminalLParen)
    │   │       │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │   │       │   ├── item #0 (kind: Arg)
    │   │       │   │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │   │   └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │   │       └── value (kind: ExprPath)
    │   │       │   │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │                   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │   │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │                       ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │   │       │   │                       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── separator #0 (kind: TerminalComma)
    │   │       │   │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   ├── token (kind: TokenComma): ','
    │   │       │   │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │   ├── item #1 (kind: Arg)
    │   │       │   │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │   │   └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │   │       └── value (kind: ExprErrorPropagate)
    │   │       │   │   │   │       │   │           ├── expr (kind: ExprPath)
    │   │       │   │   │   │       │   │           │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   │           │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │   │           │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │   │           │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │   │           │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │           │               ├── token (kind: TokenIdentifier): 'y'
    │   │       │   │   │   │       │   │           │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │           └── op (kind: TerminalQuestionMark)
    │   │       │   │   │   │       │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │               ├── token (kind: TokenQuestionMark): '?'
    │   │       │   │   │   │       │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   ├── separator #1 (kind: TerminalComma)
    │   │       │   │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │   │   ├── token (kind: TokenComma): ','
    │   │       │   │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │       │   └── item #2 (kind: Arg)
    │   │       │   │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │                       └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │                           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │                           ├── token (kind: TokenIdentifier): 'z'
    │   │       │   │   │   │       │                           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       └── rparen (kind: TerminalRParen)
    │   │       │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           ├── token (kind: TokenRParen): ')'
    │   │       │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── op (kind: TerminalQuestionMark)
    │   │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       ├── token (kind: TokenQuestionMark): '?'
    │   │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #7 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'member_value'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │               ├── token (kind: TokenIdentifier): 'value'
    │   │       │   │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── op (kind: TerminalDot)
    │   │       │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── token (kind: TokenDot): '.'
    │   │       │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   └── rhs (kind: ExprPath)
    │   │       │   │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │   │           └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │               └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │                   ├── token (kind: TokenIdentifier): 'member'
    │   │       │   │   │   │                   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── op (kind: TerminalQuestionMark)
    │   │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       ├── token (kind: TokenQuestionMark): '?'
    │   │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #8 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'method_return'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: ExprErrorPropagate)
    │   │       │   │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │               ├── token (kind: TokenIdentifier): 'value'
    │   │       │   │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── op (kind: TerminalDot)
    │   │       │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   │   ├── token (kind: TokenDot): '.'
    │   │       │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │   └── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │       │               ├── token (kind: TokenIdentifier): 'method'
    │   │       │   │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │       └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │   │           ├── lparen (kind: TerminalLParen)
    │   │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │           ├── arguments (kind: ArgList) []
    │   │       │   │   │   │           └── rparen (kind: TerminalRParen)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               ├── token (kind: TokenRParen): ')'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── op (kind: TerminalQuestionMark)
    │   │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       ├── token (kind: TokenQuestionMark): '?'
    │   │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #9 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: OptionTypeClauseEmpty) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── rhs (kind: TerminalTrue)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenTrue): 'true'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           ├── child #0 (kind: TokenWhitespace).
    │   │       │   │           ├── child #1 (kind: TokenSingleLineComment): '// bla1'
    │   │       │   │           └── child #2 (kind: TokenNewline).
    │   │       │   ├── child #10 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprBinary)
    │   │       │   │   │   ├── lhs (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │               │   ├── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │               │   ├── child #1 (kind: TokenSingleLineComment): '// bla2'
    │   │       │   │   │   │               │   ├── child #2 (kind: TokenNewline).
    │   │       │   │   │   │               │   └── child #3 (kind: TokenWhitespace).
    │   │       │   │   │   │               ├── token (kind: TokenIdentifier): 'z'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── op (kind: TerminalEq)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   └── rhs (kind: TerminalLiteralNumber)
    │   │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       ├── token (kind: TokenLiteralNumber): '5'
    │   │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #11 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │               │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │               ├── token (kind: TokenIdentifier): 'func1'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TerminalLParen)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                       └── ident (kind: TerminalIdentifier)
    │   │       │   │   │       │                           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │                           ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │       │                           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── rparen (kind: TerminalRParen)
    │   │       │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           ├── token (kind: TokenRParen): ')'
    │   │       │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #12 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: TypeClause)
    │   │       │   │   │   ├── colon (kind: TerminalColon)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenColon): ':'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── ty (kind: ExprPath)
    │   │       │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │           └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │               ├── ident (kind: TerminalIdentifier)
    │   │       │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               │   ├── token (kind: TokenIdentifier): 'Option'
    │   │       │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │       │   │   │               └── generic_args (kind: GenericArgs)
    │   │       │   │   │                   ├── langle (kind: TerminalLT)
    │   │       │   │   │                   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   │   ├── token (kind: TokenLT): '<'
    │   │       │   │   │                   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │                   ├── generic_args (kind: GenericArgList)
    │   │       │   │   │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │                   │       └── value (kind: ExprPath)
    │   │       │   │   │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │                   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │                   │                   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │                   │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   │                       ├── token (kind: TokenIdentifier): 'felt252'
    │   │       │   │   │                   │                       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │                   └── rangle (kind: TerminalGT)
    │   │       │   │   │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                       ├── token (kind: TokenGT): '>'
    │   │       │   │   │                       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               ├── token (kind: TokenIdentifier): 'Some'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TerminalLParen)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: TerminalLiteralNumber)
    │   │       │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │               ├── token (kind: TokenLiteralNumber): '5'
    │   │       │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── rparen (kind: TerminalRParen)
    │   │       │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           ├── token (kind: TokenRParen): ')'
    │   │       │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #13 (kind: StatementLet)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── let_kw (kind: TerminalLet)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   ├── token (kind: TokenLet): 'let'
    │   │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── pattern (kind: ExprPath)
    │   │       │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── type_clause (kind: TypeClause)
    │   │       │   │   │   ├── colon (kind: TerminalColon)
    │   │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │   ├── token (kind: TokenColon): ':'
    │   │       │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── ty (kind: ExprPath)
    │   │       │   │   │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       └── segments (kind: ExprPathInner)
    │   │       │   │   │           └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │               ├── ident (kind: TerminalIdentifier)
    │   │       │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │               │   ├── token (kind: TokenIdentifier): 'Option'
    │   │       │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │       │   │   │               └── generic_args (kind: GenericArgs)
    │   │       │   │   │                   ├── langle (kind: TerminalLT)
    │   │       │   │   │                   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   │   ├── token (kind: TokenLT): '<'
    │   │       │   │   │                   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │                   ├── generic_args (kind: GenericArgList)
    │   │       │   │   │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │                   │       └── value (kind: ExprPath)
    │   │       │   │   │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │                   │           └── segments (kind: ExprPathInner)
    │   │       │   │   │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │                   │                   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │                   │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                   │                       ├── token (kind: TokenIdentifier): 'felt252'
    │   │       │   │   │                   │                       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │                   └── rangle (kind: TerminalGT)
    │   │       │   │   │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │                       ├── token (kind: TokenGT): '>'
    │   │       │   │   │                       └── trailing_trivia (kind: Trivia)
    │   │       │   │   │                           └── child #0 (kind: TokenWhitespace).
    │   │       │   │   ├── eq (kind: TerminalEq)
    │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   ├── token (kind: TokenEq): '='
    │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── rhs (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │           └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               ├── token (kind: TokenIdentifier): 'Some'
    │   │       │   │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TerminalLParen)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: TerminalLiteralNumber)
    │   │       │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │               ├── token (kind: TokenLiteralNumber): '5'
    │   │       │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── rparen (kind: TerminalRParen)
    │   │       │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           ├── token (kind: TokenRParen): ')'
    │   │       │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
    │   │       │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │   ├── child #14 (kind: StatementExpr)
    │   │       │   │   ├── attributes (kind: AttributeList) []
    │   │       │   │   ├── expr (kind: ExprFunctionCall)
    │   │       │   │   │   ├── path (kind: ExprPath)
    │   │       │   │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │   └── segments (kind: ExprPathInner)
    │   │       │   │   │   │       └── item #0 (kind: PathSegmentWithGenericArgs)
    │   │       │   │   │   │           ├── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │           │   ├── leading_trivia (kind: Trivia)
    │   │       │   │   │   │           │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │   │   │   │           │   ├── token (kind: TokenIdentifier): 'func2'
    │   │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │           ├── separator (kind: TerminalColonColon)
    │   │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │           │   ├── token (kind: TokenColonColon): '::'
    │   │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │           └── generic_args (kind: GenericArgs)
    │   │       │   │   │   │               ├── langle (kind: TerminalLT)
    │   │       │   │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               │   ├── token (kind: TokenLT): '<'
    │   │       │   │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │               ├── generic_args (kind: GenericArgList)
    │   │       │   │   │   │               │   └── item #0 (kind: GenericArgUnnamed)
    │   │       │   │   │   │               │       └── value (kind: ExprPath)
    │   │       │   │   │   │               │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │   │               │           └── segments (kind: ExprPathInner)
    │   │       │   │   │   │               │               └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │   │               │                   └── ident (kind: TerminalIdentifier)
    │   │       │   │   │   │               │                       ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │               │                       ├── token (kind: TokenIdentifier): 'int'
    │   │       │   │   │   │               │                       └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   │               └── rangle (kind: TerminalGT)
    │   │       │   │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │   │                   ├── token (kind: TokenGT): '>'
    │   │       │   │   │   │                   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │   └── arguments (kind: ArgListParenthesized)
    │   │       │   │   │       ├── lparen (kind: TerminalLParen)
    │   │       │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │       │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       ├── arguments (kind: ArgList)
    │   │       │   │   │       │   └── item #0 (kind: Arg)
    │   │       │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │       │   │   │       │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │       │   │   │       │           └── value (kind: ExprPath)
    │   │       │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │   │   │       │               └── segments (kind: ExprPathInner)
    │   │       │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │       │   │   │       │                       └── ident (kind: TerminalIdentifier)
    │   │       │   │   │       │                           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │       │                           ├── token (kind: TokenIdentifier): 'x'
    │   │       │   │   │       │                           └── trailing_trivia (kind: Trivia) []
    │   │       │   │   │       └── rparen (kind: TerminalRParen)
    │   │       │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │       │   │   │           ├── token (kind: TokenRParen): ')'
    │   │       │   │   │           └── trailing_trivia (kind: Trivia)
    │   │       │   │   │               └── child #0 (kind: TokenNewline).
    │   │       │   │   └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       │   └── child #15 (kind: StatementReturn)
    │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │       ├── return_kw (kind: TerminalReturn)
    │   │       │       │   ├── leading_trivia (kind: Trivia)
    │   │       │       │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   ├── token (kind: TokenReturn): 'return'
    │   │       │       │   └── trailing_trivia (kind: Trivia)
    │   │       │       │       └── child #0 (kind: TokenWhitespace).
    │   │       │       ├── expr_clause (kind: ExprClause)
    │   │       │       │   └── expr (kind: ExprPath)
    │   │       │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │       └── segments (kind: ExprPathInner)
    │   │       │       │           └── item #0 (kind: PathSegmentSimple)
    │   │       │       │               └── ident (kind: TerminalIdentifier)
    │   │       │       │                   ├── leading_trivia (kind: Trivia) []
    │   │       │       │                   ├── token (kind: TokenIdentifier): 'x'
    │   │       │       │                   └── trailing_trivia (kind: Trivia) []
    │   │       │       └── semicolon (kind: TerminalSemicolon)
    │   │       │           ├── leading_trivia (kind: Trivia) []
    │   │       │           ├── token (kind: TokenSemicolon): ';'
    │   │       │           └── trailing_trivia (kind: Trivia)
    │   │       │               └── child #0 (kind: TokenNewline).
    │   │       └── rbrace (kind: TerminalRBrace)
    │   │           ├── leading_trivia (kind: Trivia) []
    │   │           ├── token: Missing
    │   │           └── trailing_trivia (kind: Trivia) []
    │   ├── child #3 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TerminalFunction)
    │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   │   ├── token (kind: TokenFunction): 'fn'
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenIdentifier): 'bar'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   │   └── name (kind: TerminalIdentifier)
    │   │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   │       ├── token (kind: TokenIdentifier): 'A'
    │   │   │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │   │       └── name (kind: TerminalIdentifier)
    │   │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │           ├── token (kind: TokenIdentifier): 'B'
    │   │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── rangle (kind: TerminalGT)
    │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── parameters (kind: ParamList) []
    │   │   │       ├── rparen (kind: TerminalRParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenRParen): ')'
    │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TerminalArrow)
    │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   ├── token (kind: TokenArrow): '->'
    │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TerminalIdentifier)
    │   │   │       │                   ├── leading_trivia (kind: Trivia) []
    │   │   │       │                   ├── token (kind: TokenIdentifier): 'felt252'
    │   │   │       │                   └── trailing_trivia (kind: Trivia)
    │   │   │       │                       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TerminalLBrace)
    │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   ├── token (kind: TokenLBrace): '{'
    │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │       ├── statements (kind: StatementList) []
    │   │       └── rbrace (kind: TerminalRBrace)
    │   │           ├── leading_trivia (kind: Trivia) []
    │   │           ├── token (kind: TokenRBrace): '}'
    │   │           └── trailing_trivia (kind: Trivia)
    │   │               └── child #0 (kind: TokenNewline).
    │   ├── child #4 (kind: ItemExternType)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── extern_kw (kind: TerminalExtern)
    │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   ├── token (kind: TokenExtern): 'extern'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── type_kw (kind: TerminalType)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenType): 'type'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'S'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: GenericParamList) []
    │   │   │   └── rangle (kind: TerminalGT)
    │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #5 (kind: ItemExternFunction)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── extern_kw (kind: TerminalExtern)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenExtern): 'extern'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TerminalFunction)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenFunction): 'fn'
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenIdentifier): 'glee'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   │   └── name (kind: TerminalIdentifier)
    │   │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   │       ├── token (kind: TokenIdentifier): 'A'
    │   │   │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │   │       └── name (kind: TerminalIdentifier)
    │   │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │           ├── token (kind: TokenIdentifier): 'b'
    │   │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── rangle (kind: TerminalGT)
    │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   ├── item #0 (kind: Param)
    │   │   │       │   │   ├── modifiers (kind: ModifierList) []
    │   │   │       │   │   ├── name (kind: TerminalIdentifier)
    │   │   │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   │   ├── token (kind: TokenIdentifier): 'var1'
    │   │   │       │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │   │   └── type_clause (kind: TypeClause)
    │   │   │       │   │       ├── colon (kind: TerminalColon)
    │   │   │       │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │       │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   │       └── ty (kind: ExprPath)
    │   │   │       │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │   │           └── segments (kind: ExprPathInner)
    │   │   │       │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │       │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │                       ├── token (kind: TokenIdentifier): 'int'
    │   │   │       │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │       │   └── separator #0 (kind: TerminalComma)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenComma): ','
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── rparen (kind: TerminalRParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenRParen): ')'
    │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TerminalArrow)
    │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   ├── token (kind: TokenArrow): '->'
    │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │           │   └── ident (kind: TerminalIdentifier)
    │   │   │       │           │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │           │       ├── token (kind: TokenIdentifier): 'crate'
    │   │   │       │           │       └── trailing_trivia (kind: Trivia) []
    │   │   │       │           ├── separator #0 (kind: TerminalColonColon)
    │   │   │       │           │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │           │   ├── token (kind: TokenColonColon): '::'
    │   │   │       │           │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │           └── item #1 (kind: PathSegmentWithGenericArgs)
    │   │   │       │               ├── ident (kind: TerminalIdentifier)
    │   │   │       │               │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │               │   ├── token (kind: TokenIdentifier): 'S'
    │   │   │       │               │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │               ├── separator (kind: OptionTerminalColonColonEmpty) []
    │   │   │       │               └── generic_args (kind: GenericArgs)
    │   │   │       │                   ├── langle (kind: TerminalLT)
    │   │   │       │                   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │                   │   ├── token (kind: TokenLT): '<'
    │   │   │       │                   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │                   ├── generic_args (kind: GenericArgList)
    │   │   │       │                   │   └── item #0 (kind: GenericArgUnnamed)
    │   │   │       │                   │       └── value (kind: ExprPath)
    │   │   │       │                   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │                   │           └── segments (kind: ExprPathInner)
    │   │   │       │                   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │       │                   │                   └── ident (kind: TerminalIdentifier)
    │   │   │       │                   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │       │                   │                       ├── token (kind: TokenIdentifier): 'int'
    │   │   │       │                   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │       │                   └── rangle (kind: TerminalGT)
    │   │   │       │                       ├── leading_trivia (kind: Trivia) []
    │   │   │       │                       ├── token (kind: TokenGT): '>'
    │   │   │       │                       └── trailing_trivia (kind: Trivia)
    │   │   │       │                           └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: TerminalNoPanic)
    │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │           ├── token (kind: TokenNoPanic): 'nopanic'
    │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #6 (kind: ItemStruct)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── struct_kw (kind: TerminalStruct)
    │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   ├── token (kind: TokenStruct): 'struct'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'A'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   └── name (kind: TerminalIdentifier)
    │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │       ├── token (kind: TokenIdentifier): 'A'
    │   │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TerminalIdentifier)
    │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │   │           ├── token (kind: TokenIdentifier): 'B'
    │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   │   └── rangle (kind: TerminalGT)
    │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │       └── trailing_trivia (kind: Trivia)
    │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │   ├── lbrace (kind: TerminalLBrace)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenLBrace): '{'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenNewline).
    │   │   ├── members (kind: MemberList)
    │   │   │   ├── item #0 (kind: Member)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── visibility (kind: VisibilityPub)
    │   │   │   │   │   ├── pub_kw (kind: TerminalPub)
    │   │   │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   │   ├── token (kind: TokenPub): 'pub'
    │   │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
    │   │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   ├── token (kind: TokenIdentifier): 'member'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TerminalColon)
    │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │   │                       ├── token (kind: TokenIdentifier): 'bool'
    │   │   │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │   │   └── item #1 (kind: Member)
    │   │   │       ├── attributes (kind: AttributeList)
    │   │   │       │   └── child #0 (kind: Attribute)
    │   │   │       │       ├── hash (kind: TerminalHash)
    │   │   │       │       │   ├── leading_trivia (kind: Trivia)
    │   │   │       │       │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │       │       │   ├── token (kind: TokenHash): '#'
    │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │       ├── lbrack (kind: TerminalLBrack)
    │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │   ├── token (kind: TokenLBrack): '['
    │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │       ├── attr (kind: ExprPath)
    │   │   │       │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       │   └── segments (kind: ExprPathInner)
    │   │   │       │       │       └── item #0 (kind: PathSegmentSimple)
    │   │   │       │       │           └── ident (kind: TerminalIdentifier)
    │   │   │       │       │               ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │               ├── token (kind: TokenIdentifier): 'annot'
    │   │   │       │       │               └── trailing_trivia (kind: Trivia) []
    │   │   │       │       ├── arguments (kind: ArgListParenthesized)
    │   │   │       │       │   ├── lparen (kind: TerminalLParen)
    │   │   │       │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │   │   ├── token (kind: TokenLParen): '('
    │   │   │       │       │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │       │   ├── arguments (kind: ArgList)
    │   │   │       │       │   │   └── item #0 (kind: Arg)
    │   │   │       │       │   │       ├── modifiers (kind: ModifierList) []
    │   │   │       │       │   │       └── arg_clause (kind: ArgClauseUnnamed)
    │   │   │       │       │   │           └── value (kind: ExprPath)
    │   │   │       │       │   │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       │   │               └── segments (kind: ExprPathInner)
    │   │   │       │       │   │                   └── item #0 (kind: PathSegmentSimple)
    │   │   │       │       │   │                       └── ident (kind: TerminalIdentifier)
    │   │   │       │       │   │                           ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │   │                           ├── token (kind: TokenIdentifier): 'a'
    │   │   │       │       │   │                           └── trailing_trivia (kind: Trivia) []
    │   │   │       │       │   └── rparen (kind: TerminalRParen)
    │   │   │       │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │       ├── token (kind: TokenRParen): ')'
    │   │   │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       │       └── rbrack (kind: TerminalRBrack)
    │   │   │       │           ├── leading_trivia (kind: Trivia) []
    │   │   │       │           ├── token (kind: TokenRBrack): ']'
    │   │   │       │           └── trailing_trivia (kind: Trivia)
    │   │   │       │               └── child #0 (kind: TokenNewline).
    │   │   │       ├── visibility (kind: VisibilityDefault) []
    │   │   │       ├── name (kind: TerminalIdentifier)
    │   │   │       │   ├── leading_trivia (kind: Trivia)
    │   │   │       │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │       │   ├── token (kind: TokenIdentifier): 'member2'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       └── type_clause (kind: TypeClause)
    │   │   │           ├── colon (kind: TerminalColon)
    │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │   │           │   ├── token (kind: TokenColon): ':'
    │   │   │           │   └── trailing_trivia (kind: Trivia)
    │   │   │           │       └── child #0 (kind: TokenWhitespace).
    │   │   │           └── ty (kind: ExprListParenthesized)
    │   │   │               ├── lparen (kind: TerminalLParen)
    │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │   │               │   ├── token (kind: TokenLParen): '('
    │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │   │               ├── expressions (kind: ExprList)
    │   │   │               │   ├── item #0 (kind: ExprPath)
    │   │   │               │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │   │   └── segments (kind: ExprPathInner)
    │   │   │               │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │               │   │           └── ident (kind: TerminalIdentifier)
    │   │   │               │   │               ├── leading_trivia (kind: Trivia) []
    │   │   │               │   │               ├── token (kind: TokenIdentifier): 'bool'
    │   │   │               │   │               └── trailing_trivia (kind: Trivia) []
    │   │   │               │   ├── separator #0 (kind: TerminalComma)
    │   │   │               │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │               │   │   ├── token (kind: TokenComma): ','
    │   │   │               │   │   └── trailing_trivia (kind: Trivia)
    │   │   │               │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │               │   ├── item #1 (kind: ExprPath)
    │   │   │               │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │   │   └── segments (kind: ExprPathInner)
    │   │   │               │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │               │   │           └── ident (kind: TerminalIdentifier)
    │   │   │               │   │               ├── leading_trivia (kind: Trivia) []
    │   │   │               │   │               ├── token (kind: TokenIdentifier): 'felt252'
    │   │   │               │   │               └── trailing_trivia (kind: Trivia) []
    │   │   │               │   ├── separator #1 (kind: TerminalComma)
    │   │   │               │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │               │   │   ├── token (kind: TokenComma): ','
    │   │   │               │   │   └── trailing_trivia (kind: Trivia)
    │   │   │               │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │               │   └── item #2 (kind: ExprListParenthesized)
    │   │   │               │       ├── lparen (kind: TerminalLParen)
    │   │   │               │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │               │       │   ├── token (kind: TokenLParen): '('
    │   │   │               │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │               │       ├── expressions (kind: ExprList) []
    │   │   │               │       └── rparen (kind: TerminalRParen)
    │   │   │               │           ├── leading_trivia (kind: Trivia) []
    │   │   │               │           ├── token (kind: TokenRParen): ')'
    │   │   │               │           └── trailing_trivia (kind: Trivia) []
    │   │   │               └── rparen (kind: TerminalRParen)
    │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │   │                   ├── token (kind: TokenRParen): ')'
    │   │   │                   └── trailing_trivia (kind: Trivia)
    │   │   │                       └── child #0 (kind: TokenNewline).
    │   │   └── rbrace (kind: TerminalRBrace)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenRBrace): '}'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #7 (kind: ItemEnum)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityPub)
    │   │   │   ├── pub_kw (kind: TerminalPub)
    │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   │   ├── token (kind: TokenPub): 'pub'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   └── argument_clause (kind: VisibilityPubArgumentClause)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── argument (kind: TerminalIdentifier)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenIdentifier): 'crate'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       └── rparen (kind: TerminalRParen)
    │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │           ├── token (kind: TokenRParen): ')'
    │   │   │           └── trailing_trivia (kind: Trivia)
    │   │   │               └── child #0 (kind: TokenWhitespace).
    │   │   ├── enum_kw (kind: TerminalEnum)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenEnum): 'enum'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'E'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   ├── item #0 (kind: GenericParamType)
    │   │   │   │   │   └── name (kind: TerminalIdentifier)
    │   │   │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │       ├── token (kind: TokenIdentifier): 'A'
    │   │   │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │   └── item #1 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TerminalIdentifier)
    │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │   │           ├── token (kind: TokenIdentifier): 'B'
    │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   │   └── rangle (kind: TerminalGT)
    │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │       └── trailing_trivia (kind: Trivia)
    │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │   ├── lbrace (kind: TerminalLBrace)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenLBrace): '{'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenNewline).
    │   │   ├── variants (kind: VariantList)
    │   │   │   ├── item #0 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   ├── token (kind: TokenIdentifier): 'V1'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TerminalColon)
    │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │   │                       ├── token (kind: TokenIdentifier): 'A'
    │   │   │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── separator #0 (kind: TerminalComma)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │   │   ├── item #1 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   ├── token (kind: TokenIdentifier): 'V2'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── type_clause (kind: TypeClause)
    │   │   │   │       ├── colon (kind: TerminalColon)
    │   │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │       │   ├── token (kind: TokenColon): ':'
    │   │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │   │       └── ty (kind: ExprPath)
    │   │   │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   │           └── segments (kind: ExprPathInner)
    │   │   │   │               └── item #0 (kind: PathSegmentSimple)
    │   │   │   │                   └── ident (kind: TerminalIdentifier)
    │   │   │   │                       ├── leading_trivia (kind: Trivia) []
    │   │   │   │                       ├── token (kind: TokenIdentifier): 'B'
    │   │   │   │                       └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── separator #1 (kind: TerminalComma)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenComma): ','
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenNewline).
    │   │   │   ├── item #2 (kind: Variant)
    │   │   │   │   ├── attributes (kind: AttributeList) []
    │   │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │   │   │   │   ├── token (kind: TokenIdentifier): 'VEmpty'
    │   │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   │   └── type_clause (kind: OptionTypeClauseEmpty) []
    │   │   │   └── separator #2 (kind: TerminalComma)
    │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       ├── token (kind: TokenComma): ','
    │   │   │       └── trailing_trivia (kind: Trivia)
    │   │   │           └── child #0 (kind: TokenNewline).
    │   │   └── rbrace (kind: TerminalRBrace)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenRBrace): '}'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #8 (kind: FunctionWithBody)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── declaration (kind: FunctionDeclaration)
    │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │   │   │   ├── function_kw (kind: TerminalFunction)
    │   │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   │   ├── token (kind: TokenFunction): 'fn'
    │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenIdentifier): 'match_e_enum'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   │   └── signature (kind: FunctionSignature)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── parameters (kind: ParamList)
    │   │   │       │   └── item #0 (kind: Param)
    │   │   │       │       ├── modifiers (kind: ModifierList) []
    │   │   │       │       ├── name (kind: TerminalIdentifier)
    │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │       │   ├── token (kind: TokenIdentifier): 'e'
    │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       │       └── type_clause (kind: TypeClause)
    │   │   │       │           ├── colon (kind: TerminalColon)
    │   │   │       │           │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │           │   ├── token (kind: TokenColon): ':'
    │   │   │       │           │   └── trailing_trivia (kind: Trivia)
    │   │   │       │           │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │           └── ty (kind: ExprPath)
    │   │   │       │               ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │               └── segments (kind: ExprPathInner)
    │   │   │       │                   └── item #0 (kind: PathSegmentSimple)
    │   │   │       │                       └── ident (kind: TerminalIdentifier)
    │   │   │       │                           ├── leading_trivia (kind: Trivia) []
    │   │   │       │                           ├── token (kind: TokenIdentifier): 'E'
    │   │   │       │                           └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── rparen (kind: TerminalRParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenRParen): ')'
    │   │   │       │   └── trailing_trivia (kind: Trivia)
    │   │   │       │       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── ret_ty (kind: ReturnTypeClause)
    │   │   │       │   ├── arrow (kind: TerminalArrow)
    │   │   │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │   ├── token (kind: TokenArrow): '->'
    │   │   │       │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │   │       │   └── ty (kind: ExprPath)
    │   │   │       │       ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │       │       └── segments (kind: ExprPathInner)
    │   │   │       │           └── item #0 (kind: PathSegmentSimple)
    │   │   │       │               └── ident (kind: TerminalIdentifier)
    │   │   │       │                   ├── leading_trivia (kind: Trivia) []
    │   │   │       │                   ├── token (kind: TokenIdentifier): 'felt252'
    │   │   │       │                   └── trailing_trivia (kind: Trivia)
    │   │   │       │                       └── child #0 (kind: TokenWhitespace).
    │   │   │       ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
    │   │   │       └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
    │   │   └── body (kind: ExprBlock)
    │   │       ├── lbrace (kind: TerminalLBrace)
    │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │   ├── token (kind: TokenLBrace): '{'
    │   │       │   └── trailing_trivia (kind: Trivia)
    │   │       │       └── child #0 (kind: TokenNewline).
    │   │       ├── statements (kind: StatementList)
    │   │       │   └── child #0 (kind: StatementExpr)
    │   │       │       ├── attributes (kind: AttributeList) []
    │   │       │       ├── expr (kind: ExprMatch)
    │   │       │       │   ├── match_kw (kind: TerminalMatch)
    │   │       │       │   │   ├── leading_trivia (kind: Trivia)
    │   │       │       │   │   │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   ├── token (kind: TokenMatch): 'match'
    │   │       │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │       │   ├── expr (kind: ExprPath)
    │   │       │       │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   └── segments (kind: ExprPathInner)
    │   │       │       │   │       └── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │           └── ident (kind: TerminalIdentifier)
    │   │       │       │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │               ├── token (kind: TokenIdentifier): 'e'
    │   │       │       │   │               └── trailing_trivia (kind: Trivia)
    │   │       │       │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   ├── lbrace (kind: TerminalLBrace)
    │   │       │       │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   ├── token (kind: TokenLBrace): '{'
    │   │       │       │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │       └── child #0 (kind: TokenNewline).
    │   │       │       │   ├── arms (kind: MatchArms)
    │   │       │       │   │   ├── item #0 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │       │       ├── leading_trivia (kind: Trivia)
    │   │       │       │   │   │   │       │       │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   │       │       │       ├── token (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TerminalColonColon)
    │   │       │       │   │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       │   ├── token (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │               ├── token (kind: TokenIdentifier): 'V1'
    │   │       │       │   │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │       │   │   │   │           ├── lparen (kind: TerminalLParen)
    │   │       │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           │   ├── token (kind: TokenLParen): '('
    │   │       │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           ├── pattern (kind: TerminalUnderscore)
    │   │       │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           │   ├── token (kind: TokenUnderscore): '_'
    │   │       │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           └── rparen (kind: TerminalRParen)
    │   │       │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │               ├── token (kind: TokenRParen): ')'
    │   │       │       │   │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   └── expression (kind: TerminalLiteralNumber)
    │   │       │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │       ├── token (kind: TokenLiteralNumber): '1'
    │   │       │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   ├── separator #0 (kind: TerminalComma)
    │   │       │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   ├── token (kind: TokenComma): ','
    │   │       │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │       └── child #0 (kind: TokenNewline).
    │   │       │       │   │   ├── item #1 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │       │       ├── leading_trivia (kind: Trivia)
    │   │       │       │   │   │   │       │       │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   │       │       │       ├── token (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TerminalColonColon)
    │   │       │       │   │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       │   ├── token (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │               ├── token (kind: TokenIdentifier): 'V2'
    │   │       │       │   │   │   │       │               └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       └── pattern (kind: PatternEnumInnerPattern)
    │   │       │       │   │   │   │           ├── lparen (kind: TerminalLParen)
    │   │       │       │   │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           │   ├── token (kind: TokenLParen): '('
    │   │       │       │   │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           ├── pattern (kind: ExprPath)
    │   │       │       │   │   │   │           │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │           │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │           │       └── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │           │           └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │           │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           │               ├── token (kind: TokenIdentifier): 'x'
    │   │       │       │   │   │   │           │               └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │           └── rparen (kind: TerminalRParen)
    │   │       │       │   │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │               ├── token (kind: TokenRParen): ')'
    │   │       │       │   │   │   │               └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │                   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   └── expression (kind: TerminalLiteralNumber)
    │   │       │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │       ├── token (kind: TokenLiteralNumber): '2'
    │   │       │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   ├── separator #1 (kind: TerminalComma)
    │   │       │       │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   ├── token (kind: TokenComma): ','
    │   │       │       │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │       └── child #0 (kind: TokenNewline).
    │   │       │       │   │   ├── item #2 (kind: MatchArm)
    │   │       │       │   │   │   ├── patterns (kind: PatternListOr)
    │   │       │       │   │   │   │   └── item #0 (kind: PatternEnum)
    │   │       │       │   │   │   │       ├── path (kind: ExprPath)
    │   │       │       │   │   │   │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │       │       │   │   │   │       │   └── segments (kind: ExprPathInner)
    │   │       │       │   │   │   │       │       ├── item #0 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │       │   └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │       │       ├── leading_trivia (kind: Trivia)
    │   │       │       │   │   │   │       │       │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   │       │       │       ├── token (kind: TokenIdentifier): 'E'
    │   │       │       │   │   │   │       │       │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       ├── separator #0 (kind: TerminalColonColon)
    │   │       │       │   │   │   │       │       │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       │   ├── token (kind: TokenColonColon): '::'
    │   │       │       │   │   │   │       │       │   └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │       └── item #1 (kind: PathSegmentSimple)
    │   │       │       │   │   │   │       │           └── ident (kind: TerminalIdentifier)
    │   │       │       │   │   │   │       │               ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │       │               ├── token (kind: TokenIdentifier): 'VEmpty'
    │   │       │       │   │   │   │       │               └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │       │                   └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   │       └── pattern (kind: OptionPatternEnumInnerPatternEmpty) []
    │   │       │       │   │   │   ├── arrow (kind: TerminalMatchArrow)
    │   │       │       │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │   │   ├── token (kind: TokenMatchArrow): '=>'
    │   │       │       │   │   │   │   └── trailing_trivia (kind: Trivia)
    │   │       │       │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │       │       │   │   │   └── expression (kind: TerminalLiteralNumber)
    │   │       │       │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │   │       ├── token (kind: TokenLiteralNumber): '0'
    │   │       │       │   │   │       └── trailing_trivia (kind: Trivia) []
    │   │       │       │   │   └── separator #2 (kind: TerminalComma)
    │   │       │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │       │       │   │       ├── token (kind: TokenComma): ','
    │   │       │       │   │       └── trailing_trivia (kind: Trivia)
    │   │       │       │   │           └── child #0 (kind: TokenNewline).
    │   │       │       │   └── rbrace (kind: TerminalRBrace)
    │   │       │       │       ├── leading_trivia (kind: Trivia)
    │   │       │       │       │   └── child #0 (kind: TokenWhitespace).
    │   │       │       │       ├── token (kind: TokenRBrace): '}'
    │   │       │       │       └── trailing_trivia (kind: Trivia)
    │   │       │       │           └── child #0 (kind: TokenNewline).
    │   │       │       └── semicolon (kind: OptionTerminalSemicolonEmpty) []
    │   │       └── rbrace (kind: TerminalRBrace)
    │   │           ├── leading_trivia (kind: Trivia) []
    │   │           ├── token (kind: TokenRBrace): '}'
    │   │           └── trailing_trivia (kind: Trivia)
    │   │               └── child #0 (kind: TokenNewline).
    │   ├── child #9 (kind: ItemTypeAlias)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── type_kw (kind: TerminalType)
    │   │   │   ├── leading_trivia (kind: Trivia)
    │   │   │   │   └── child #0 (kind: TokenNewline).
    │   │   │   ├── token (kind: TokenType): 'type'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'Renamed'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │   │   ├── eq (kind: TerminalEq)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenEq): '='
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── ty (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TerminalIdentifier)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenIdentifier): 'submod'
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── separator #0 (kind: TerminalColonColon)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenColonColon): '::'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── item #1 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TerminalIdentifier)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenIdentifier): 'inner'
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── separator #1 (kind: TerminalColonColon)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenColonColon): '::'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       └── item #2 (kind: PathSegmentSimple)
    │   │   │           └── ident (kind: TerminalIdentifier)
    │   │   │               ├── leading_trivia (kind: Trivia) []
    │   │   │               ├── token (kind: TokenIdentifier): 'Other'
    │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #10 (kind: ItemTypeAlias)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── visibility (kind: VisibilityDefault) []
    │   │   ├── type_kw (kind: TerminalType)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenType): 'type'
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── name (kind: TerminalIdentifier)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenIdentifier): 'Generic'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   ├── generic_params (kind: WrappedGenericParamList)
    │   │   │   ├── langle (kind: TerminalLT)
    │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   │   ├── token (kind: TokenLT): '<'
    │   │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   │   ├── generic_params (kind: GenericParamList)
    │   │   │   │   └── item #0 (kind: GenericParamType)
    │   │   │   │       └── name (kind: TerminalIdentifier)
    │   │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │   │           ├── token (kind: TokenIdentifier): 'T'
    │   │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   │   └── rangle (kind: TerminalGT)
    │   │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       ├── token (kind: TokenGT): '>'
    │   │   │       └── trailing_trivia (kind: Trivia)
    │   │   │           └── child #0 (kind: TokenWhitespace).
    │   │   ├── eq (kind: TerminalEq)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenEq): '='
    │   │   │   └── trailing_trivia (kind: Trivia)
    │   │   │       └── child #0 (kind: TokenWhitespace).
    │   │   ├── ty (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       ├── item #0 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TerminalIdentifier)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenIdentifier): 'super'
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── separator #0 (kind: TerminalColonColon)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenColonColon): '::'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── item #1 (kind: PathSegmentSimple)
    │   │   │       │   └── ident (kind: TerminalIdentifier)
    │   │   │       │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │       ├── token (kind: TokenIdentifier): 'other'
    │   │   │       │       └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── separator #1 (kind: TerminalColonColon)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenColonColon): '::'
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       └── item #2 (kind: PathSegmentWithGenericArgs)
    │   │   │           ├── ident (kind: TerminalIdentifier)
    │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │   │           │   ├── token (kind: TokenIdentifier): 'OtherGeneric'
    │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │   │           ├── separator (kind: TerminalColonColon)
    │   │   │           │   ├── leading_trivia (kind: Trivia) []
    │   │   │           │   ├── token (kind: TokenColonColon): '::'
    │   │   │           │   └── trailing_trivia (kind: Trivia) []
    │   │   │           └── generic_args (kind: GenericArgs)
    │   │   │               ├── langle (kind: TerminalLT)
    │   │   │               │   ├── leading_trivia (kind: Trivia) []
    │   │   │               │   ├── token (kind: TokenLT): '<'
    │   │   │               │   └── trailing_trivia (kind: Trivia) []
    │   │   │               ├── generic_args (kind: GenericArgList)
    │   │   │               │   └── item #0 (kind: GenericArgUnnamed)
    │   │   │               │       └── value (kind: ExprPath)
    │   │   │               │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │               │           └── segments (kind: ExprPathInner)
    │   │   │               │               └── item #0 (kind: PathSegmentSimple)
    │   │   │               │                   └── ident (kind: TerminalIdentifier)
    │   │   │               │                       ├── leading_trivia (kind: Trivia) []
    │   │   │               │                       ├── token (kind: TokenIdentifier): 'T'
    │   │   │               │                       └── trailing_trivia (kind: Trivia) []
    │   │   │               └── rangle (kind: TerminalGT)
    │   │   │                   ├── leading_trivia (kind: Trivia) []
    │   │   │                   ├── token (kind: TokenGT): '>'
    │   │   │                   └── trailing_trivia (kind: Trivia) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   ├── child #11 (kind: ItemInlineMacro)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── path (kind: ExprPath)
    │   │   │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │   │   └── segments (kind: ExprPathInner)
    │   │   │       └── item #0 (kind: PathSegmentSimple)
    │   │   │           └── ident (kind: TerminalIdentifier)
    │   │   │               ├── leading_trivia (kind: Trivia)
    │   │   │               │   └── child #0 (kind: TokenNewline).
    │   │   │               ├── token (kind: TokenIdentifier): 'inline_item_macro'
    │   │   │               └── trailing_trivia (kind: Trivia) []
    │   │   ├── bang (kind: TerminalNot)
    │   │   │   ├── leading_trivia (kind: Trivia) []
    │   │   │   ├── token (kind: TokenNot): '!'
    │   │   │   └── trailing_trivia (kind: Trivia) []
    │   │   ├── arguments (kind: TokenTreeNode)
    │   │   │   └── subtree (kind: ParenthesizedTokenTree)
    │   │   │       ├── lparen (kind: TerminalLParen)
    │   │   │       │   ├── leading_trivia (kind: Trivia) []
    │   │   │       │   ├── token (kind: TokenLParen): '('
    │   │   │       │   └── trailing_trivia (kind: Trivia) []
    │   │   │       ├── tokens (kind: TokenList)
    │   │   │       │   ├── child #0 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TerminalIdentifier)
    │   │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       ├── token (kind: TokenIdentifier): 'x'
    │   │   │       │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │       │   ├── child #1 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TerminalComma)
    │   │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       ├── token (kind: TokenComma): ','
    │   │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │   │       │   │           └── child #0 (kind: TokenWhitespace).
    │   │   │       │   ├── child #2 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TerminalIdentifier)
    │   │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       ├── token (kind: TokenIdentifier): 'y'
    │   │   │       │   │       └── trailing_trivia (kind: Trivia) []
    │   │   │       │   ├── child #3 (kind: TokenTreeLeaf)
    │   │   │       │   │   └── leaf (kind: TerminalComma)
    │   │   │       │   │       ├── leading_trivia (kind: Trivia) []
    │   │   │       │   │       ├── token (kind: TokenComma): ','
    │   │   │       │   │       └── trailing_trivia (kind: Trivia)
    │   │   │       │   │           └── child #0 (kind: TokenWhitespace).
    │   │   │       │   └── child #4 (kind: TokenTreeLeaf)
    │   │   │       │       └── leaf (kind: TerminalIdentifier)
    │   │   │       │           ├── leading_trivia (kind: Trivia) []
    │   │   │       │           ├── token (kind: TokenIdentifier): 'z'
    │   │   │       │           └── trailing_trivia (kind: Trivia) []
    │   │   │       └── rparen (kind: TerminalRParen)
    │   │   │           ├── leading_trivia (kind: Trivia) []
    │   │   │           ├── token (kind: TokenRParen): ')'
    │   │   │           └── trailing_trivia (kind: Trivia) []
    │   │   └── semicolon (kind: TerminalSemicolon)
    │   │       ├── leading_trivia (kind: Trivia) []
    │   │       ├── token (kind: TokenSemicolon): ';'
    │   │       └── trailing_trivia (kind: Trivia)
    │   │           └── child #0 (kind: TokenNewline).
    │   └── child #12: Missing []
    └── eof (kind: TerminalEndOfFile)
        ├── leading_trivia (kind: Trivia)
        │   └── child #0 (kind: TriviumSkippedNode)
        │       └── node (kind: AttributeList)
        │           └── child #0 (kind: Attribute)
        │               ├── hash (kind: TerminalHash)
        │               │   ├── leading_trivia (kind: Trivia)
        │               │   │   └── child #0 (kind: TokenNewline).
        │               │   ├── token (kind: TokenHash): '#'
        │               │   └── trailing_trivia (kind: Trivia) []
        │               ├── lbrack (kind: TerminalLBrack)
        │               │   ├── leading_trivia (kind: Trivia) []
        │               │   ├── token (kind: TokenLBrack): '['
        │               │   └── trailing_trivia (kind: Trivia) []
        │               ├── attr (kind: ExprPath)
        │               │   ├── dollar (kind: OptionTerminalDollarEmpty) []
        │               │   └── segments (kind: ExprPathInner)
        │               │       └── item #0 (kind: PathSegmentSimple)
        │               │           └── ident (kind: TerminalIdentifier)
        │               │               ├── leading_trivia (kind: Trivia) []
        │               │               ├── token (kind: TokenIdentifier): 'attribute_without_item'
        │               │               └── trailing_trivia (kind: Trivia) []
        │               ├── arguments (kind: OptionArgListParenthesizedEmpty) []
        │               └── rbrack (kind: TerminalRBrack)
        │                   ├── leading_trivia (kind: Trivia) []
        │                   ├── token (kind: TokenRBrack): ']'
        │                   └── trailing_trivia (kind: Trivia)
        │                       └── child #0 (kind: TokenNewline).
        ├── token (kind: TokenEndOfFile).
        └── trailing_trivia (kind: Trivia) []
