SOURCE_FILE@0..195
TYPE_ALIAS@0..37
TYPE_KW@0..4 "type"
WHITESPACE@4..5 " "
NAME@5..8
IDENT@5..8 "Foo"
GENERIC_PARAM_LIST@8..12
L_ANGLE@8..9 "<"
LIFETIME_PARAM@9..11
LIFETIME@9..11
LIFETIME_IDENT@9..11 "'a"
R_ANGLE@11..12 ">"
WHITESPACE@12..13 " "
EQ@13..14 "="
WHITESPACE@14..15 " "
REF_TYPE@15..36
AMP@15..16 "&"
LIFETIME@16..18
LIFETIME_IDENT@16..18 "'a"
WHITESPACE@18..19 " "
PAREN_TYPE@19..36
L_PAREN@19..20 "("
DYN_TRAIT_TYPE@20..35
DYN_KW@20..23 "dyn"
WHITESPACE@23..24 " "
TYPE_BOUND_LIST@24..35
TYPE_BOUND@24..28
PATH_TYPE@24..28
PATH@24..28
PATH_SEGMENT@24..28
NAME_REF@24..28
IDENT@24..28 "Send"
WHITESPACE@28..29 " "
PLUS@29..30 "+"
WHITESPACE@30..31 " "
TYPE_BOUND@31..35
PATH_TYPE@31..35
PATH@31..35
PATH_SEGMENT@31..35
NAME_REF@31..35
IDENT@31..35 "Sync"
R_PAREN@35..36 ")"
SEMICOLON@36..37 ";"
WHITESPACE@37..38 "\n"
TYPE_ALIAS@38..74
TYPE_KW@38..42 "type"
WHITESPACE@42..43 " "
NAME@43..46
IDENT@43..46 "Foo"
WHITESPACE@46..47 " "
EQ@47..48 "="
WHITESPACE@48..49 " "
PTR_TYPE@49..73
STAR@49..50 "*"
CONST_KW@50..55 "const"
WHITESPACE@55..56 " "
PAREN_TYPE@56..73
L_PAREN@56..57 "("
DYN_TRAIT_TYPE@57..72
DYN_KW@57..60 "dyn"
WHITESPACE@60..61 " "
TYPE_BOUND_LIST@61..72
TYPE_BOUND@61..65
PATH_TYPE@61..65
PATH@61..65
PATH_SEGMENT@61..65
NAME_REF@61..65
IDENT@61..65 "Send"
WHITESPACE@65..66 " "
PLUS@66..67 "+"
WHITESPACE@67..68 " "
TYPE_BOUND@68..72
PATH_TYPE@68..72
PATH@68..72
PATH_SEGMENT@68..72
NAME_REF@68..72
IDENT@68..72 "Sync"
R_PAREN@72..73 ")"
SEMICOLON@73..74 ";"
WHITESPACE@74..75 "\n"
TYPE_ALIAS@75..115
TYPE_KW@75..79 "type"
WHITESPACE@79..80 " "
NAME@80..83
IDENT@80..83 "Foo"
WHITESPACE@83..84 " "
EQ@84..85 "="
WHITESPACE@85..86 " "
FN_PTR_TYPE@86..114
FN_KW@86..88 "fn"
PARAM_LIST@88..90
L_PAREN@88..89 "("
R_PAREN@89..90 ")"
WHITESPACE@90..91 " "
RET_TYPE@91..114
THIN_ARROW@91..93 "->"
WHITESPACE@93..94 " "
PAREN_TYPE@94..114
L_PAREN@94..95 "("
DYN_TRAIT_TYPE@95..113
DYN_KW@95..98 "dyn"
WHITESPACE@98..99 " "
TYPE_BOUND_LIST@99..113
TYPE_BOUND@99..103
PATH_TYPE@99..103
PATH@99..103
PATH_SEGMENT@99..103
NAME_REF@99..103
IDENT@99..103 "Send"
WHITESPACE@103..104 " "
PLUS@104..105 "+"
WHITESPACE@105..106 " "
TYPE_BOUND@106..113
LIFETIME@106..113
LIFETIME_IDENT@106..113 "'static"
R_PAREN@113..114 ")"
SEMICOLON@114..115 ";"
WHITESPACE@115..116 "\n"
FN@116..194
FN_KW@116..118 "fn"
WHITESPACE@118..119 " "
NAME@119..123
IDENT@119..123 "main"
PARAM_LIST@123..125
L_PAREN@123..124 "("
R_PAREN@124..125 ")"
WHITESPACE@125..126 " "
BLOCK_EXPR@126..194
L_CURLY@126..127 "{"
WHITESPACE@127..132 "\n "
LET_STMT@132..192
LET_KW@132..135 "let"
WHITESPACE@135..136 " "
IDENT_PAT@136..137
NAME@136..137
IDENT@136..137 "b"
WHITESPACE@137..138 " "
EQ@138..139 "="
WHITESPACE@139..140 " "
CAST_EXPR@140..191
PAREN_EXPR@140..144
L_PAREN@140..141 "("
REF_EXPR@141..143
AMP@141..142 "&"
PATH_EXPR@142..143
PATH@142..143
PATH_SEGMENT@142..143
NAME_REF@142..143
IDENT@142..143 "a"
R_PAREN@143..144 ")"
WHITESPACE@144..145 " "
AS_KW@145..147 "as"
WHITESPACE@147..148 " "
REF_TYPE@148..191
AMP@148..149 "&"
PAREN_TYPE@149..191
L_PAREN@149..150 "("
DYN_TRAIT_TYPE@150..190
DYN_KW@150..153 "dyn"
WHITESPACE@153..154 " "
TYPE_BOUND_LIST@154..190
TYPE_BOUND@154..182
PATH_TYPE@154..182
PATH@154..182
PATH_SEGMENT@154..182
NAME_REF@154..157
IDENT@154..157 "Add"
GENERIC_ARG_LIST@157..182
L_ANGLE@157..158 "<"
TYPE_ARG@158..163
PATH_TYPE@158..163
PATH@158..163
PATH_SEGMENT@158..163
NAME_REF@158..163
IDENT@158..163 "Other"
COMMA@163..164 ","
WHITESPACE@164..165 " "
ASSOC_TYPE_ARG@165..181
NAME_REF@165..171
IDENT@165..171 "Output"
WHITESPACE@171..172 " "
EQ@172..173 "="
WHITESPACE@173..174 " "
PATH_TYPE@174..181
PATH@174..181
PATH_SEGMENT@174..181
NAME_REF@174..181
IDENT@174..181 "Addable"
R_ANGLE@181..182 ">"
WHITESPACE@182..183 " "
PLUS@183..184 "+"
WHITESPACE@184..185 " "
TYPE_BOUND@185..190
PATH_TYPE@185..190
PATH@185..190
PATH_SEGMENT@185..190
NAME_REF@185..190
IDENT@185..190 "Other"
R_PAREN@190..191 ")"
SEMICOLON@191..192 ";"
WHITESPACE@192..193 "\n"
R_CURLY@193..194 "}"
WHITESPACE@194..195 "\n"