SOURCE_FILE@[0; 135) TYPE_ALIAS_DEF@[0; 28) TYPE_KW@[0; 4) WHITESPACE@[4; 5) NAME@[5; 6) IDENT@[5; 6) "A" WHITESPACE@[6; 7) EQ@[7; 8) WHITESPACE@[8; 9) FOR_TYPE@[9; 27) FOR_KW@[9; 12) TYPE_PARAM_LIST@[12; 16) L_ANGLE@[12; 13) LIFETIME_PARAM@[13; 15) LIFETIME@[13; 15) "'a" R_ANGLE@[15; 16) WHITESPACE@[16; 17) FN_POINTER_TYPE@[17; 27) FN_KW@[17; 19) PARAM_LIST@[19; 21) L_PAREN@[19; 20) R_PAREN@[20; 21) WHITESPACE@[21; 22) RET_TYPE@[22; 27) THIN_ARROW@[22; 24) WHITESPACE@[24; 25) TUPLE_TYPE@[25; 27) L_PAREN@[25; 26) R_PAREN@[26; 27) SEMI@[27; 28) WHITESPACE@[28; 29) FN_DEF@[29; 79) FN_KW@[29; 31) WHITESPACE@[31; 32) NAME@[32; 35) IDENT@[32; 35) "foo" TYPE_PARAM_LIST@[35; 38) L_ANGLE@[35; 36) TYPE_PARAM@[36; 37) NAME@[36; 37) IDENT@[36; 37) "T" R_ANGLE@[37; 38) PARAM_LIST@[38; 46) L_PAREN@[38; 39) PARAM@[39; 45) BIND_PAT@[39; 41) NAME@[39; 41) IDENT@[39; 41) "_t" COLON@[41; 42) WHITESPACE@[42; 43) REFERENCE_TYPE@[43; 45) AMP@[43; 44) PATH_TYPE@[44; 45) PATH@[44; 45) PATH_SEGMENT@[44; 45) NAME_REF@[44; 45) IDENT@[44; 45) "T" R_PAREN@[45; 46) WHITESPACE@[46; 47) WHERE_CLAUSE@[47; 76) WHERE_KW@[47; 52) WHITESPACE@[52; 53) WHERE_PRED@[53; 76) FOR_TYPE@[53; 66) FOR_KW@[53; 56) TYPE_PARAM_LIST@[56; 60) L_ANGLE@[56; 57) LIFETIME_PARAM@[57; 59) LIFETIME@[57; 59) "'a" R_ANGLE@[59; 60) WHITESPACE@[60; 61) REFERENCE_TYPE@[61; 66) AMP@[61; 62) LIFETIME@[62; 64) "'a" WHITESPACE@[64; 65) PATH_TYPE@[65; 66) PATH@[65; 66) PATH_SEGMENT@[65; 66) NAME_REF@[65; 66) IDENT@[65; 66) "T" COLON@[66; 67) WHITESPACE@[67; 68) TYPE_BOUND_LIST@[68; 76) TYPE_BOUND@[68; 76) PATH_TYPE@[68; 76) PATH@[68; 76) PATH_SEGMENT@[68; 76) NAME_REF@[68; 76) IDENT@[68; 76) "Iterator" WHITESPACE@[76; 77) BLOCK@[77; 79) L_CURLY@[77; 78) R_CURLY@[78; 79) WHITESPACE@[79; 80) FN_DEF@[80; 134) FN_KW@[80; 82) WHITESPACE@[82; 83) NAME@[83; 86) IDENT@[83; 86) "bar" TYPE_PARAM_LIST@[86; 89) L_ANGLE@[86; 87) TYPE_PARAM@[87; 88) NAME@[87; 88) IDENT@[87; 88) "T" R_ANGLE@[88; 89) PARAM_LIST@[89; 97) L_PAREN@[89; 90) PARAM@[90; 96) BIND_PAT@[90; 92) NAME@[90; 92) IDENT@[90; 92) "_t" COLON@[92; 93) WHITESPACE@[93; 94) REFERENCE_TYPE@[94; 96) AMP@[94; 95) PATH_TYPE@[95; 96) PATH@[95; 96) PATH_SEGMENT@[95; 96) NAME_REF@[95; 96) IDENT@[95; 96) "T" R_PAREN@[96; 97) WHITESPACE@[97; 98) WHERE_CLAUSE@[98; 131) WHERE_KW@[98; 103) WHITESPACE@[103; 104) WHERE_PRED@[104; 131) FOR_TYPE@[104; 121) FOR_KW@[104; 107) TYPE_PARAM_LIST@[107; 111) L_ANGLE@[107; 108) LIFETIME_PARAM@[108; 110) LIFETIME@[108; 110) "'a" R_ANGLE@[110; 111) WHITESPACE@[111; 112) REFERENCE_TYPE@[112; 121) AMP@[112; 113) LIFETIME@[113; 115) "'a" WHITESPACE@[115; 116) MUT_KW@[116; 119) WHITESPACE@[119; 120) PATH_TYPE@[120; 121) PATH@[120; 121) PATH_SEGMENT@[120; 121) NAME_REF@[120; 121) IDENT@[120; 121) "T" COLON@[121; 122) WHITESPACE@[122; 123) TYPE_BOUND_LIST@[123; 131) TYPE_BOUND@[123; 131) PATH_TYPE@[123; 131) PATH@[123; 131) PATH_SEGMENT@[123; 131) NAME_REF@[123; 131) IDENT@[123; 131) "Iterator" WHITESPACE@[131; 132) BLOCK@[132; 134) L_CURLY@[132; 133) R_CURLY@[133; 134) WHITESPACE@[134; 135)