SOURCE_FILE@[0; 240) FN_DEF@[0; 53) FN_KW@[0; 2) WHITESPACE@[2; 3) NAME@[3; 4) IDENT@[3; 4) "f" TYPE_PARAM_LIST@[4; 48) L_ANGLE@[4; 5) TYPE_PARAM@[5; 47) NAME@[5; 6) IDENT@[5; 6) "T" COLON@[6; 7) WHITESPACE@[7; 8) L_PAREN@[8; 9) PATH_TYPE@[9; 13) PATH@[9; 13) PATH_SEGMENT@[9; 13) NAME_REF@[9; 13) IDENT@[9; 13) "Copy" R_PAREN@[13; 14) WHITESPACE@[14; 15) PLUS@[15; 16) WHITESPACE@[16; 17) L_PAREN@[17; 18) QUESTION@[18; 19) PATH_TYPE@[19; 24) PATH@[19; 24) PATH_SEGMENT@[19; 24) NAME_REF@[19; 24) IDENT@[19; 24) "Sized" R_PAREN@[24; 25) WHITESPACE@[25; 26) PLUS@[26; 27) WHITESPACE@[27; 28) L_PAREN@[28; 29) FOR_TYPE@[29; 46) FOR_KW@[29; 32) TYPE_PARAM_LIST@[32; 36) L_ANGLE@[32; 33) LIFETIME_PARAM@[33; 35) LIFETIME@[33; 35) "'a" R_ANGLE@[35; 36) WHITESPACE@[36; 37) PATH_TYPE@[37; 46) PATH@[37; 46) PATH_SEGMENT@[37; 46) NAME_REF@[37; 42) IDENT@[37; 42) "Trait" TYPE_ARG_LIST@[42; 46) L_ANGLE@[42; 43) LIFETIME_ARG@[43; 45) LIFETIME@[43; 45) "'a" R_ANGLE@[45; 46) R_PAREN@[46; 47) R_ANGLE@[47; 48) PARAM_LIST@[48; 50) L_PAREN@[48; 49) R_PAREN@[49; 50) WHITESPACE@[50; 51) BLOCK@[51; 53) L_CURLY@[51; 52) R_CURLY@[52; 53) WHITESPACE@[53; 55) FN_DEF@[55; 239) FN_KW@[55; 57) WHITESPACE@[57; 58) NAME@[58; 62) IDENT@[58; 62) "main" PARAM_LIST@[62; 64) L_PAREN@[62; 63) R_PAREN@[63; 64) WHITESPACE@[64; 65) BLOCK@[65; 239) L_CURLY@[65; 66) WHITESPACE@[66; 71) LET_STMT@[71; 121) LET_KW@[71; 74) WHITESPACE@[74; 75) PLACEHOLDER_PAT@[75; 76) UNDERSCORE@[75; 76) COLON@[76; 77) WHITESPACE@[77; 78) PATH_TYPE@[78; 121) PATH@[78; 88) PATH_SEGMENT@[78; 88) NAME_REF@[78; 81) IDENT@[78; 81) "Box" TYPE_ARG_LIST@[81; 88) L_ANGLE@[81; 82) TYPE_ARG@[82; 88) PAREN_TYPE@[82; 88) L_PAREN@[82; 83) PATH_TYPE@[83; 87) PATH@[83; 87) PATH_SEGMENT@[83; 87) NAME_REF@[83; 87) IDENT@[83; 87) "Copy" R_PAREN@[87; 88) err: `expected COMMA` err: `expected R_ANGLE` WHITESPACE@[88; 89) PLUS@[89; 90) WHITESPACE@[90; 91) L_PAREN@[91; 92) QUESTION@[92; 93) PATH_TYPE@[93; 98) PATH@[93; 98) PATH_SEGMENT@[93; 98) NAME_REF@[93; 98) IDENT@[93; 98) "Sized" R_PAREN@[98; 99) WHITESPACE@[99; 100) PLUS@[100; 101) WHITESPACE@[101; 102) L_PAREN@[102; 103) FOR_TYPE@[103; 120) FOR_KW@[103; 106) TYPE_PARAM_LIST@[106; 110) L_ANGLE@[106; 107) LIFETIME_PARAM@[107; 109) LIFETIME@[107; 109) "'a" R_ANGLE@[109; 110) WHITESPACE@[110; 111) PATH_TYPE@[111; 120) PATH@[111; 120) PATH_SEGMENT@[111; 120) NAME_REF@[111; 116) IDENT@[111; 116) "Trait" TYPE_ARG_LIST@[116; 120) L_ANGLE@[116; 117) LIFETIME_ARG@[117; 119) LIFETIME@[117; 119) "'a" R_ANGLE@[119; 120) R_PAREN@[120; 121) err: `expected SEMI` err: `expected expression` EXPR_STMT@[121; 123) ERROR@[121; 122) R_ANGLE@[121; 122) SEMI@[122; 123) WHITESPACE@[123; 128) LET_STMT@[128; 141) LET_KW@[128; 131) WHITESPACE@[131; 132) PLACEHOLDER_PAT@[132; 133) UNDERSCORE@[132; 133) COLON@[133; 134) WHITESPACE@[134; 135) PATH_TYPE@[135; 141) PATH@[135; 141) PATH_SEGMENT@[135; 141) NAME_REF@[135; 138) IDENT@[135; 138) "Box" TYPE_ARG_LIST@[138; 141) L_ANGLE@[138; 139) TYPE_ARG@[139; 141) PAREN_TYPE@[139; 141) L_PAREN@[139; 140) err: `expected type` ERROR@[140; 141) QUESTION@[140; 141) err: `expected R_PAREN` err: `expected COMMA` err: `expected R_ANGLE` err: `expected SEMI` EXPR_STMT@[141; 146) PATH_EXPR@[141; 146) PATH@[141; 146) PATH_SEGMENT@[141; 146) NAME_REF@[141; 146) IDENT@[141; 146) "Sized" err: `expected SEMI` err: `expected expression` EXPR_STMT@[146; 147) ERROR@[146; 147) R_PAREN@[146; 147) err: `expected SEMI` WHITESPACE@[147; 148) err: `expected expression` EXPR_STMT@[148; 149) ERROR@[148; 149) PLUS@[148; 149) err: `expected SEMI` WHITESPACE@[149; 150) EXPR_STMT@[150; 151) PAREN_EXPR@[150; 151) L_PAREN@[150; 151) err: `expected expression` err: `expected R_PAREN` err: `expected SEMI` EXPR_STMT@[151; 157) FOR_EXPR@[151; 157) FOR_KW@[151; 154) err: `expected pattern` ERROR@[154; 155) L_ANGLE@[154; 155) err: `expected IN_KW` err: `expected expression` ERROR@[155; 157) LIFETIME@[155; 157) "'a" err: `expected a block` err: `expected expression` EXPR_STMT@[157; 158) ERROR@[157; 158) R_ANGLE@[157; 158) err: `expected SEMI` WHITESPACE@[158; 159) EXPR_STMT@[159; 180) BIN_EXPR@[159; 180) BIN_EXPR@[159; 178) BIN_EXPR@[159; 169) BIN_EXPR@[159; 167) PATH_EXPR@[159; 164) PATH@[159; 164) PATH_SEGMENT@[159; 164) NAME_REF@[159; 164) IDENT@[159; 164) "Trait" L_ANGLE@[164; 165) err: `expected expression` ERROR@[165; 167) LIFETIME@[165; 167) "'a" R_ANGLE@[167; 168) err: `expected expression` ERROR@[168; 169) R_PAREN@[168; 169) WHITESPACE@[169; 170) PLUS@[170; 171) WHITESPACE@[171; 172) PAREN_EXPR@[172; 178) L_PAREN@[172; 173) PATH_EXPR@[173; 177) PATH@[173; 177) PATH_SEGMENT@[173; 177) NAME_REF@[173; 177) IDENT@[173; 177) "Copy" R_PAREN@[177; 178) R_ANGLE@[178; 179) err: `expected expression` ERROR@[179; 180) SEMI@[179; 180) err: `expected SEMI` WHITESPACE@[180; 185) LET_STMT@[185; 235) LET_KW@[185; 188) WHITESPACE@[188; 189) PLACEHOLDER_PAT@[189; 190) UNDERSCORE@[189; 190) COLON@[190; 191) WHITESPACE@[191; 192) PATH_TYPE@[192; 235) PATH@[192; 215) PATH_SEGMENT@[192; 215) NAME_REF@[192; 195) IDENT@[192; 195) "Box" TYPE_ARG_LIST@[195; 215) L_ANGLE@[195; 196) TYPE_ARG@[196; 215) PAREN_TYPE@[196; 215) L_PAREN@[196; 197) FOR_TYPE@[197; 214) FOR_KW@[197; 200) TYPE_PARAM_LIST@[200; 204) L_ANGLE@[200; 201) LIFETIME_PARAM@[201; 203) LIFETIME@[201; 203) "'a" R_ANGLE@[203; 204) WHITESPACE@[204; 205) PATH_TYPE@[205; 214) PATH@[205; 214) PATH_SEGMENT@[205; 214) NAME_REF@[205; 210) IDENT@[205; 210) "Trait" TYPE_ARG_LIST@[210; 214) L_ANGLE@[210; 211) LIFETIME_ARG@[211; 213) LIFETIME@[211; 213) "'a" R_ANGLE@[213; 214) R_PAREN@[214; 215) err: `expected COMMA` err: `expected R_ANGLE` WHITESPACE@[215; 216) PLUS@[216; 217) WHITESPACE@[217; 218) L_PAREN@[218; 219) PATH_TYPE@[219; 223) PATH@[219; 223) PATH_SEGMENT@[219; 223) NAME_REF@[219; 223) IDENT@[219; 223) "Copy" R_PAREN@[223; 224) WHITESPACE@[224; 225) PLUS@[225; 226) WHITESPACE@[226; 227) L_PAREN@[227; 228) QUESTION@[228; 229) PATH_TYPE@[229; 234) PATH@[229; 234) PATH_SEGMENT@[229; 234) NAME_REF@[229; 234) IDENT@[229; 234) "Sized" R_PAREN@[234; 235) err: `expected SEMI` err: `expected expression` EXPR_STMT@[235; 237) ERROR@[235; 236) R_ANGLE@[235; 236) SEMI@[236; 237) WHITESPACE@[237; 238) R_CURLY@[238; 239) WHITESPACE@[239; 240)