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 ")" SEMICOLON@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 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 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 ">" COLON2@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 L_CURLY@197..198 "{" R_CURLY@198..199 "}" WHITESPACE@199..200 "\n"