SOURCE_FILE@0..91
FN@0..90
FN_KW@0..2 "fn"
WHITESPACE@2..3 " "
NAME@3..6
IDENT@3..6 "foo"
PARAM_LIST@6..8
L_PAREN@6..7 "("
R_PAREN@7..8 ")"
WHITESPACE@8..9 " "
BLOCK_EXPR@9..90
L_CURLY@9..10 "{"
WHITESPACE@10..15 "\n "
LET_STMT@15..25
LET_KW@15..18 "let"
WHITESPACE@18..19 " "
WILDCARD_PAT@19..20
UNDERSCORE@19..20 "_"
WHITESPACE@20..21 " "
EQ@21..22 "="
WHITESPACE@22..23 " "
PATH_EXPR@23..24
PATH@23..24
PATH_SEGMENT@23..24
NAME_REF@23..24
IDENT@23..24 "a"
SEMICOLON@24..25 ";"
WHITESPACE@25..30 "\n "
LET_STMT@30..43
LET_KW@30..33 "let"
WHITESPACE@33..34 " "
WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " "
EQ@36..37 "="
WHITESPACE@37..38 " "
PATH_EXPR@38..42
PATH@38..42
PATH@38..39
PATH_SEGMENT@38..39
NAME_REF@38..39
IDENT@38..39 "a"
COLON2@39..41 "::"
PATH_SEGMENT@41..42
NAME_REF@41..42
IDENT@41..42 "b"
SEMICOLON@42..43 ";"
WHITESPACE@43..48 "\n "
LET_STMT@48..65
LET_KW@48..51 "let"
WHITESPACE@51..52 " "
WILDCARD_PAT@52..53
UNDERSCORE@52..53 "_"
WHITESPACE@53..54 " "
EQ@54..55 "="
WHITESPACE@55..56 " "
PATH_EXPR@56..64
PATH@56..64
PATH_SEGMENT@56..64
COLON2@56..58 "::"
NAME_REF@58..59
IDENT@58..59 "a"
GENERIC_ARG_LIST@59..64
COLON2@59..61 "::"
L_ANGLE@61..62 "<"
TYPE_ARG@62..63
PATH_TYPE@62..63
PATH@62..63
PATH_SEGMENT@62..63
NAME_REF@62..63
IDENT@62..63 "b"
R_ANGLE@63..64 ">"
SEMICOLON@64..65 ";"
WHITESPACE@65..70 "\n "
LET_STMT@70..88
LET_KW@70..73 "let"
WHITESPACE@73..74 " "
WILDCARD_PAT@74..75
UNDERSCORE@74..75 "_"
WHITESPACE@75..76 " "
EQ@76..77 "="
WHITESPACE@77..78 " "
MACRO_CALL@78..87
PATH@78..84
PATH_SEGMENT@78..84
NAME_REF@78..84
IDENT@78..84 "format"
BANG@84..85 "!"
TOKEN_TREE@85..87
L_PAREN@85..86 "("
R_PAREN@86..87 ")"
SEMICOLON@87..88 ";"
WHITESPACE@88..89 "\n"
R_CURLY@89..90 "}"
WHITESPACE@90..91 "\n"