SOURCE_FILE@[0; 167) FN_DEF@[0; 166) 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@[9; 166) L_CURLY@[9; 10) "{" WHITESPACE@[10; 15) "\n " EXPR_STMT@[15; 164) MATCH_EXPR@[15; 163) MATCH_KW@[15; 20) "match" WHITESPACE@[20; 21) " " TUPLE_EXPR@[21; 23) L_PAREN@[21; 22) "(" R_PAREN@[22; 23) ")" WHITESPACE@[23; 24) " " MATCH_ARM_LIST@[24; 163) L_CURLY@[24; 25) "{" WHITESPACE@[25; 34) "\n " MATCH_ARM@[34; 41) PLACEHOLDER_PAT@[34; 35) UNDERSCORE@[34; 35) "_" WHITESPACE@[35; 36) " " FAT_ARROW@[36; 38) "=>" WHITESPACE@[38; 39) " " TUPLE_EXPR@[39; 41) L_PAREN@[39; 40) "(" R_PAREN@[40; 41) ")" COMMA@[41; 42) "," WHITESPACE@[42; 51) "\n " MATCH_ARM@[51; 83) PLACEHOLDER_PAT@[51; 52) UNDERSCORE@[51; 52) "_" WHITESPACE@[52; 53) " " MATCH_GUARD@[53; 77) IF_KW@[53; 55) "if" WHITESPACE@[55; 56) " " BIN_EXPR@[56; 77) PATH_EXPR@[56; 60) PATH@[56; 60) PATH_SEGMENT@[56; 60) NAME_REF@[56; 60) IDENT@[56; 60) "Test" WHITESPACE@[60; 61) " " R_ANGLE@[61; 62) ">" WHITESPACE@[62; 63) " " STRUCT_LIT@[63; 77) PATH@[63; 67) PATH_SEGMENT@[63; 67) NAME_REF@[63; 67) IDENT@[63; 67) "Test" NAMED_FIELD_LIST@[67; 77) L_CURLY@[67; 68) "{" NAMED_FIELD@[68; 76) NAME_REF@[68; 73) IDENT@[68; 73) "field" COLON@[73; 74) ":" WHITESPACE@[74; 75) " " LITERAL@[75; 76) INT_NUMBER@[75; 76) "0" R_CURLY@[76; 77) "}" WHITESPACE@[77; 78) " " FAT_ARROW@[78; 80) "=>" WHITESPACE@[80; 81) " " TUPLE_EXPR@[81; 83) L_PAREN@[81; 82) "(" R_PAREN@[82; 83) ")" COMMA@[83; 84) "," WHITESPACE@[84; 93) "\n " MATCH_ARM@[93; 109) BIND_PAT@[93; 94) NAME@[93; 94) IDENT@[93; 94) "X" WHITESPACE@[94; 95) " " PIPE@[95; 96) "|" WHITESPACE@[96; 97) " " BIND_PAT@[97; 98) NAME@[97; 98) IDENT@[97; 98) "Y" WHITESPACE@[98; 99) " " MATCH_GUARD@[99; 103) IF_KW@[99; 101) "if" WHITESPACE@[101; 102) " " PATH_EXPR@[102; 103) PATH@[102; 103) PATH_SEGMENT@[102; 103) NAME_REF@[102; 103) IDENT@[102; 103) "Z" WHITESPACE@[103; 104) " " FAT_ARROW@[104; 106) "=>" WHITESPACE@[106; 107) " " TUPLE_EXPR@[107; 109) L_PAREN@[107; 108) "(" R_PAREN@[108; 109) ")" COMMA@[109; 110) "," WHITESPACE@[110; 119) "\n " MATCH_ARM@[119; 137) PIPE@[119; 120) "|" WHITESPACE@[120; 121) " " BIND_PAT@[121; 122) NAME@[121; 122) IDENT@[121; 122) "X" WHITESPACE@[122; 123) " " PIPE@[123; 124) "|" WHITESPACE@[124; 125) " " BIND_PAT@[125; 126) NAME@[125; 126) IDENT@[125; 126) "Y" WHITESPACE@[126; 127) " " MATCH_GUARD@[127; 131) IF_KW@[127; 129) "if" WHITESPACE@[129; 130) " " PATH_EXPR@[130; 131) PATH@[130; 131) PATH_SEGMENT@[130; 131) NAME_REF@[130; 131) IDENT@[130; 131) "Z" WHITESPACE@[131; 132) " " FAT_ARROW@[132; 134) "=>" WHITESPACE@[134; 135) " " TUPLE_EXPR@[135; 137) L_PAREN@[135; 136) "(" R_PAREN@[136; 137) ")" COMMA@[137; 138) "," WHITESPACE@[138; 147) "\n " MATCH_ARM@[147; 156) PIPE@[147; 148) "|" WHITESPACE@[148; 149) " " BIND_PAT@[149; 150) NAME@[149; 150) IDENT@[149; 150) "X" WHITESPACE@[150; 151) " " FAT_ARROW@[151; 153) "=>" WHITESPACE@[153; 154) " " TUPLE_EXPR@[154; 156) L_PAREN@[154; 155) "(" R_PAREN@[155; 156) ")" COMMA@[156; 157) "," WHITESPACE@[157; 162) "\n " R_CURLY@[162; 163) "}" SEMI@[163; 164) ";" WHITESPACE@[164; 165) "\n" R_CURLY@[165; 166) "}" WHITESPACE@[166; 167) "\n"