SOURCE_FILE@[0; 200) 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_EXPR@[77; 79) 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_EXPR@[132; 134) BLOCK@[132; 134) L_CURLY@[132; 133) "{" R_CURLY@[133; 134) "}" WHITESPACE@[134; 135) "\n" FN_DEF@[135; 199) FN_KW@[135; 137) "fn" WHITESPACE@[137; 138) " " NAME@[138; 141) IDENT@[138; 141) "baz" TYPE_PARAM_LIST@[141; 144) L_ANGLE@[141; 142) "<" TYPE_PARAM@[142; 143) NAME@[142; 143) IDENT@[142; 143) "T" R_ANGLE@[143; 144) ">" PARAM_LIST@[144; 152) L_PAREN@[144; 145) "(" PARAM@[145; 151) BIND_PAT@[145; 147) NAME@[145; 147) IDENT@[145; 147) "_t" COLON@[147; 148) ":" WHITESPACE@[148; 149) " " REFERENCE_TYPE@[149; 151) AMP@[149; 150) "&" PATH_TYPE@[150; 151) PATH@[150; 151) PATH_SEGMENT@[150; 151) NAME_REF@[150; 151) IDENT@[150; 151) "T" R_PAREN@[151; 152) ")" WHITESPACE@[152; 153) " " WHERE_CLAUSE@[153; 196) WHERE_KW@[153; 158) "where" WHITESPACE@[158; 159) " " WHERE_PRED@[159; 196) FOR_TYPE@[159; 186) FOR_KW@[159; 162) "for" TYPE_PARAM_LIST@[162; 166) L_ANGLE@[162; 163) "<" LIFETIME_PARAM@[163; 165) LIFETIME@[163; 165) "\'a" R_ANGLE@[165; 166) ">" WHITESPACE@[166; 167) " " PATH_TYPE@[167; 186) PATH@[167; 186) PATH@[167; 181) PATH_SEGMENT@[167; 181) L_ANGLE@[167; 168) "<" REFERENCE_TYPE@[168; 173) AMP@[168; 169) "&" LIFETIME@[169; 171) "\'a" WHITESPACE@[171; 172) " " PATH_TYPE@[172; 173) PATH@[172; 173) PATH_SEGMENT@[172; 173) NAME_REF@[172; 173) IDENT@[172; 173) "T" WHITESPACE@[173; 174) " " AS_KW@[174; 176) "as" WHITESPACE@[176; 177) " " PATH_TYPE@[177; 180) PATH@[177; 180) PATH_SEGMENT@[177; 180) NAME_REF@[177; 180) IDENT@[177; 180) "Baz" R_ANGLE@[180; 181) ">" COLONCOLON@[181; 183) "::" PATH_SEGMENT@[183; 186) NAME_REF@[183; 186) IDENT@[183; 186) "Foo" COLON@[186; 187) ":" WHITESPACE@[187; 188) " " TYPE_BOUND_LIST@[188; 196) TYPE_BOUND@[188; 196) PATH_TYPE@[188; 196) PATH@[188; 196) PATH_SEGMENT@[188; 196) NAME_REF@[188; 196) IDENT@[188; 196) "Iterator" WHITESPACE@[196; 197) " " BLOCK_EXPR@[197; 199) BLOCK@[197; 199) L_CURLY@[197; 198) "{" R_CURLY@[198; 199) "}" WHITESPACE@[199; 200) "\n"