SOURCE_FILE@[0; 200) STRUCT_DEF@[0; 12) STRUCT_KW@[0; 6) WHITESPACE@[6; 7) NAME@[7; 8) IDENT@[7; 8) "A" TYPE_PARAM_LIST@[8; 11) L_ANGLE@[8; 9) TYPE_PARAM@[9; 10) NAME@[9; 10) IDENT@[9; 10) "T" R_ANGLE@[10; 11) SEMI@[11; 12) WHITESPACE@[12; 13) STRUCT_DEF@[13; 26) STRUCT_KW@[13; 19) WHITESPACE@[19; 20) NAME@[20; 21) IDENT@[20; 21) "B" TYPE_PARAM_LIST@[21; 25) L_ANGLE@[21; 22) TYPE_PARAM@[22; 24) NAME@[22; 23) IDENT@[22; 23) "T" COLON@[23; 24) R_ANGLE@[24; 25) SEMI@[25; 26) WHITESPACE@[26; 27) STRUCT_DEF@[27; 43) STRUCT_KW@[27; 33) WHITESPACE@[33; 34) NAME@[34; 35) IDENT@[34; 35) "C" TYPE_PARAM_LIST@[35; 42) L_ANGLE@[35; 36) TYPE_PARAM@[36; 41) NAME@[36; 37) IDENT@[36; 37) "T" COLON@[37; 38) WHITESPACE@[38; 39) LIFETIME@[39; 41) "'a" R_ANGLE@[41; 42) SEMI@[42; 43) WHITESPACE@[43; 44) STRUCT_DEF@[44; 63) STRUCT_KW@[44; 50) WHITESPACE@[50; 51) NAME@[51; 52) IDENT@[51; 52) "D" TYPE_PARAM_LIST@[52; 62) L_ANGLE@[52; 53) TYPE_PARAM@[53; 60) NAME@[53; 54) IDENT@[53; 54) "T" COLON@[54; 55) WHITESPACE@[55; 56) LIFETIME@[56; 58) "'a" WHITESPACE@[58; 59) PLUS@[59; 60) WHITESPACE@[60; 61) R_ANGLE@[61; 62) SEMI@[62; 63) WHITESPACE@[63; 64) STRUCT_DEF@[64; 86) STRUCT_KW@[64; 70) WHITESPACE@[70; 71) NAME@[71; 72) IDENT@[71; 72) "E" TYPE_PARAM_LIST@[72; 85) L_ANGLE@[72; 73) TYPE_PARAM@[73; 83) NAME@[73; 74) IDENT@[73; 74) "T" COLON@[74; 75) WHITESPACE@[75; 76) LIFETIME@[76; 78) "'a" WHITESPACE@[78; 79) PLUS@[79; 80) WHITESPACE@[80; 81) LIFETIME@[81; 83) "'d" WHITESPACE@[83; 84) R_ANGLE@[84; 85) SEMI@[85; 86) WHITESPACE@[86; 87) STRUCT_DEF@[87; 116) STRUCT_KW@[87; 93) WHITESPACE@[93; 94) NAME@[94; 95) IDENT@[94; 95) "F" TYPE_PARAM_LIST@[95; 115) L_ANGLE@[95; 96) TYPE_PARAM@[96; 114) NAME@[96; 97) IDENT@[96; 97) "T" COLON@[97; 98) WHITESPACE@[98; 99) LIFETIME@[99; 101) "'a" WHITESPACE@[101; 102) PLUS@[102; 103) WHITESPACE@[103; 104) LIFETIME@[104; 106) "'d" WHITESPACE@[106; 107) PLUS@[107; 108) WHITESPACE@[108; 109) PATH_TYPE@[109; 114) PATH@[109; 114) PATH_SEGMENT@[109; 114) NAME_REF@[109; 114) IDENT@[109; 114) "Clone" R_ANGLE@[114; 115) SEMI@[115; 116) WHITESPACE@[116; 117) STRUCT_DEF@[117; 143) STRUCT_KW@[117; 123) WHITESPACE@[123; 124) NAME@[124; 125) IDENT@[124; 125) "G" TYPE_PARAM_LIST@[125; 142) L_ANGLE@[125; 126) TYPE_PARAM@[126; 141) NAME@[126; 127) IDENT@[126; 127) "T" COLON@[127; 128) WHITESPACE@[128; 129) PATH_TYPE@[129; 141) PATH@[129; 134) PATH_SEGMENT@[129; 134) NAME_REF@[129; 134) IDENT@[129; 134) "Clone" WHITESPACE@[134; 135) PLUS@[135; 136) WHITESPACE@[136; 137) PATH_TYPE@[137; 141) PATH@[137; 141) PATH_SEGMENT@[137; 141) NAME_REF@[137; 141) IDENT@[137; 141) "Copy" R_ANGLE@[141; 142) SEMI@[142; 143) WHITESPACE@[143; 144) STRUCT_DEF@[144; 180) STRUCT_KW@[144; 150) WHITESPACE@[150; 151) NAME@[151; 152) IDENT@[151; 152) "H" TYPE_PARAM_LIST@[152; 179) L_ANGLE@[152; 153) TYPE_PARAM@[153; 178) NAME@[153; 154) IDENT@[153; 154) "T" COLON@[154; 155) WHITESPACE@[155; 156) PATH_TYPE@[156; 178) PATH@[156; 161) PATH_SEGMENT@[156; 161) COLONCOLON@[156; 158) NAME_REF@[158; 161) IDENT@[158; 161) "Foo" WHITESPACE@[161; 162) PLUS@[162; 163) WHITESPACE@[163; 164) PATH_TYPE@[164; 178) PATH@[164; 173) PATH@[164; 168) PATH_SEGMENT@[164; 168) SELF_KW@[164; 168) COLONCOLON@[168; 170) PATH_SEGMENT@[170; 173) NAME_REF@[170; 173) IDENT@[170; 173) "Bar" WHITESPACE@[173; 174) PLUS@[174; 175) WHITESPACE@[175; 176) LIFETIME@[176; 178) "'a" R_ANGLE@[178; 179) SEMI@[179; 180) WHITESPACE@[180; 181) STRUCT_DEF@[181; 199) STRUCT_KW@[181; 187) WHITESPACE@[187; 188) NAME@[188; 189) IDENT@[188; 189) "I" TYPE_PARAM_LIST@[189; 198) L_ANGLE@[189; 190) TYPE_PARAM@[190; 192) NAME@[190; 191) IDENT@[190; 191) "T" COLON@[191; 192) COMMA@[192; 193) WHITESPACE@[193; 194) TYPE_PARAM@[194; 196) NAME@[194; 195) IDENT@[194; 195) "U" COLON@[195; 196) COMMA@[196; 197) R_ANGLE@[197; 198) SEMI@[198; 199) WHITESPACE@[199; 200)