SOURCE_FILE@[0; 138) TRAIT_DEF@[0; 137) TRAIT_KW@[0; 5) "trait" WHITESPACE@[5; 6) " " NAME@[6; 7) IDENT@[6; 7) "T" WHITESPACE@[7; 8) " " ITEM_LIST@[8; 137) L_CURLY@[8; 9) "{" WHITESPACE@[9; 14) "\n " FN_DEF@[14; 46) FN_KW@[14; 16) "fn" WHITESPACE@[16; 17) " " NAME@[17; 19) IDENT@[17; 19) "f1" PARAM_LIST@[19; 43) L_PAREN@[19; 20) "(" PARAM@[20; 42) TUPLE_PAT@[20; 26) L_PAREN@[20; 21) "(" BIND_PAT@[21; 22) NAME@[21; 22) IDENT@[21; 22) "a" COMMA@[22; 23) "," WHITESPACE@[23; 24) " " BIND_PAT@[24; 25) NAME@[24; 25) IDENT@[24; 25) "b" R_PAREN@[25; 26) ")" COLON@[26; 27) ":" WHITESPACE@[27; 28) " " TUPLE_TYPE@[28; 42) L_PAREN@[28; 29) "(" PATH_TYPE@[29; 34) PATH@[29; 34) PATH_SEGMENT@[29; 34) NAME_REF@[29; 34) IDENT@[29; 34) "usize" COMMA@[34; 35) "," WHITESPACE@[35; 36) " " PATH_TYPE@[36; 41) PATH@[36; 41) PATH_SEGMENT@[36; 41) NAME_REF@[36; 41) IDENT@[36; 41) "usize" R_PAREN@[41; 42) ")" R_PAREN@[42; 43) ")" WHITESPACE@[43; 44) " " BLOCK_EXPR@[44; 46) BLOCK@[44; 46) L_CURLY@[44; 45) "{" R_CURLY@[45; 46) "}" WHITESPACE@[46; 51) "\n " FN_DEF@[51; 74) FN_KW@[51; 53) "fn" WHITESPACE@[53; 54) " " NAME@[54; 56) IDENT@[54; 56) "f2" PARAM_LIST@[56; 71) L_PAREN@[56; 57) "(" PARAM@[57; 70) RECORD_PAT@[57; 67) PATH@[57; 58) PATH_SEGMENT@[57; 58) NAME_REF@[57; 58) IDENT@[57; 58) "S" WHITESPACE@[58; 59) " " RECORD_FIELD_PAT_LIST@[59; 67) L_CURLY@[59; 60) "{" WHITESPACE@[60; 61) " " BIND_PAT@[61; 62) NAME@[61; 62) IDENT@[61; 62) "a" COMMA@[62; 63) "," WHITESPACE@[63; 64) " " BIND_PAT@[64; 65) NAME@[64; 65) IDENT@[64; 65) "b" WHITESPACE@[65; 66) " " R_CURLY@[66; 67) "}" COLON@[67; 68) ":" WHITESPACE@[68; 69) " " PATH_TYPE@[69; 70) PATH@[69; 70) PATH_SEGMENT@[69; 70) NAME_REF@[69; 70) IDENT@[69; 70) "S" R_PAREN@[70; 71) ")" WHITESPACE@[71; 72) " " BLOCK_EXPR@[72; 74) BLOCK@[72; 74) L_CURLY@[72; 73) "{" R_CURLY@[73; 74) "}" WHITESPACE@[74; 79) "\n " FN_DEF@[79; 108) FN_KW@[79; 81) "fn" WHITESPACE@[81; 82) " " NAME@[82; 84) IDENT@[82; 84) "f3" PARAM_LIST@[84; 105) L_PAREN@[84; 85) "(" PARAM@[85; 104) TUPLE_STRUCT_PAT@[85; 95) PATH@[85; 92) PATH_SEGMENT@[85; 92) NAME_REF@[85; 92) IDENT@[85; 92) "NewType" L_PAREN@[92; 93) "(" BIND_PAT@[93; 94) NAME@[93; 94) IDENT@[93; 94) "a" R_PAREN@[94; 95) ")" COLON@[95; 96) ":" WHITESPACE@[96; 97) " " PATH_TYPE@[97; 104) PATH@[97; 104) PATH_SEGMENT@[97; 104) NAME_REF@[97; 104) IDENT@[97; 104) "NewType" R_PAREN@[104; 105) ")" WHITESPACE@[105; 106) " " BLOCK_EXPR@[106; 108) BLOCK@[106; 108) L_CURLY@[106; 107) "{" R_CURLY@[107; 108) "}" WHITESPACE@[108; 113) "\n " FN_DEF@[113; 135) FN_KW@[113; 115) "fn" WHITESPACE@[115; 116) " " NAME@[116; 118) IDENT@[116; 118) "f4" PARAM_LIST@[118; 132) L_PAREN@[118; 119) "(" PARAM@[119; 131) REF_PAT@[119; 122) AMP@[119; 120) "&" REF_PAT@[120; 122) AMP@[120; 121) "&" BIND_PAT@[121; 122) NAME@[121; 122) IDENT@[121; 122) "a" COLON@[122; 123) ":" WHITESPACE@[123; 124) " " REFERENCE_TYPE@[124; 131) AMP@[124; 125) "&" REFERENCE_TYPE@[125; 131) AMP@[125; 126) "&" PATH_TYPE@[126; 131) PATH@[126; 131) PATH_SEGMENT@[126; 131) NAME_REF@[126; 131) IDENT@[126; 131) "usize" R_PAREN@[131; 132) ")" WHITESPACE@[132; 133) " " BLOCK_EXPR@[133; 135) BLOCK@[133; 135) L_CURLY@[133; 134) "{" R_CURLY@[134; 135) "}" WHITESPACE@[135; 136) "\n" R_CURLY@[136; 137) "}" WHITESPACE@[137; 138) "\n"