SOURCE_FILE@[0; 135) TYPE_ALIAS_DEF@[0; 28) TYPE_KW@[0; 4) "type" 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) "for" 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) "fn" 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) "\n" FN_DEF@[29; 79) FN_KW@[29; 31) "fn" 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) "where" WHITESPACE@[52; 53) " " WHERE_PRED@[53; 76) FOR_TYPE@[53; 66) FOR_KW@[53; 56) "for" 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) "\n" FN_DEF@[80; 134) FN_KW@[80; 82) "fn" 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) "where" WHITESPACE@[103; 104) " " WHERE_PRED@[104; 131) FOR_TYPE@[104; 121) FOR_KW@[104; 107) "for" 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) "mut" 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) "\n"