FILE@[0; 106) IMPL_ITEM@[0; 106) IMPL_KW@[0; 4) PATH_TYPE@[4; 7) PATH@[4; 7) PATH_SEGMENT@[4; 7) NAME_REF@[4; 7) WHITESPACE@[4; 5) IDENT@[5; 6) "S" WHITESPACE@[6; 7) L_CURLY@[7; 8) FN_ITEM@[8; 31) WHITESPACE@[8; 13) FN_KW@[13; 15) NAME@[15; 17) WHITESPACE@[15; 16) IDENT@[16; 17) "a" PARAM_LIST@[17; 24) L_PAREN@[17; 18) SELF_PARAM@[18; 22) SELF_KW@[18; 22) R_PAREN@[22; 23) WHITESPACE@[23; 24) BLOCK_EXPR@[24; 31) L_CURLY@[24; 25) R_CURLY@[25; 26) WHITESPACE@[26; 31) FN_ITEM@[31; 51) FN_KW@[31; 33) NAME@[33; 35) WHITESPACE@[33; 34) IDENT@[34; 35) "b" PARAM_LIST@[35; 44) L_PAREN@[35; 36) SELF_PARAM@[36; 41) AMPERSAND@[36; 37) SELF_KW@[37; 41) COMMA@[41; 42) R_PAREN@[42; 43) WHITESPACE@[43; 44) BLOCK_EXPR@[44; 51) L_CURLY@[44; 45) R_CURLY@[45; 46) WHITESPACE@[46; 51) FN_ITEM@[51; 74) FN_KW@[51; 53) NAME@[53; 55) WHITESPACE@[53; 54) IDENT@[54; 55) "c" PARAM_LIST@[55; 67) L_PAREN@[55; 56) SELF_PARAM@[56; 64) AMPERSAND@[56; 57) LIFETIME@[57; 59) "'a" WHITESPACE@[59; 60) SELF_KW@[60; 64) COMMA@[64; 65) R_PAREN@[65; 66) WHITESPACE@[66; 67) BLOCK_EXPR@[67; 74) L_CURLY@[67; 68) R_CURLY@[68; 69) WHITESPACE@[69; 74) FN_ITEM@[74; 104) FN_KW@[74; 76) NAME@[76; 78) WHITESPACE@[76; 77) IDENT@[77; 78) "d" PARAM_LIST@[78; 101) L_PAREN@[78; 79) SELF_PARAM@[79; 91) AMPERSAND@[79; 80) LIFETIME@[80; 82) "'a" WHITESPACE@[82; 83) MUT_KW@[83; 86) WHITESPACE@[86; 87) SELF_KW@[87; 91) COMMA@[91; 92) PARAM@[92; 99) BIND_PAT@[92; 94) NAME@[92; 94) WHITESPACE@[92; 93) IDENT@[93; 94) "x" COLON@[94; 95) PATH_TYPE@[95; 99) PATH@[95; 99) PATH_SEGMENT@[95; 99) NAME_REF@[95; 99) WHITESPACE@[95; 96) IDENT@[96; 99) "i32" R_PAREN@[99; 100) WHITESPACE@[100; 101) BLOCK_EXPR@[101; 104) L_CURLY@[101; 102) R_CURLY@[102; 103) WHITESPACE@[103; 104) R_CURLY@[104; 105) WHITESPACE@[105; 106)