SOURCE_FILE TYPE_ALIAS TYPE_KW "type" WHITESPACE " " NAME IDENT "Foo" GENERIC_PARAM_LIST L_ANGLE "<" LIFETIME_PARAM LIFETIME LIFETIME_IDENT "'a" R_ANGLE ">" WHITESPACE " " EQ "=" WHITESPACE " " REF_TYPE AMP "&" LIFETIME LIFETIME_IDENT "'a" WHITESPACE " " PAREN_TYPE L_PAREN "(" DYN_TRAIT_TYPE DYN_KW "dyn" WHITESPACE " " TYPE_BOUND_LIST TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Send" WHITESPACE " " PLUS "+" WHITESPACE " " TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Sync" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n" TYPE_ALIAS TYPE_KW "type" WHITESPACE " " NAME IDENT "Foo" WHITESPACE " " EQ "=" WHITESPACE " " PTR_TYPE STAR "*" CONST_KW "const" WHITESPACE " " PAREN_TYPE L_PAREN "(" DYN_TRAIT_TYPE DYN_KW "dyn" WHITESPACE " " TYPE_BOUND_LIST TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Send" WHITESPACE " " PLUS "+" WHITESPACE " " TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Sync" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n" TYPE_ALIAS TYPE_KW "type" WHITESPACE " " NAME IDENT "Foo" WHITESPACE " " EQ "=" WHITESPACE " " FN_PTR_TYPE FN_KW "fn" PARAM_LIST L_PAREN "(" R_PAREN ")" WHITESPACE " " RET_TYPE THIN_ARROW "->" WHITESPACE " " PAREN_TYPE L_PAREN "(" DYN_TRAIT_TYPE DYN_KW "dyn" WHITESPACE " " TYPE_BOUND_LIST TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Send" WHITESPACE " " PLUS "+" WHITESPACE " " TYPE_BOUND LIFETIME LIFETIME_IDENT "'static" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n" FN FN_KW "fn" WHITESPACE " " NAME IDENT "main" PARAM_LIST L_PAREN "(" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" WHITESPACE "\n " LET_STMT LET_KW "let" WHITESPACE " " IDENT_PAT NAME IDENT "b" WHITESPACE " " EQ "=" WHITESPACE " " CAST_EXPR PAREN_EXPR L_PAREN "(" REF_EXPR AMP "&" PATH_EXPR PATH PATH_SEGMENT NAME_REF IDENT "a" R_PAREN ")" WHITESPACE " " AS_KW "as" WHITESPACE " " REF_TYPE AMP "&" PAREN_TYPE L_PAREN "(" DYN_TRAIT_TYPE DYN_KW "dyn" WHITESPACE " " TYPE_BOUND_LIST TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Add" GENERIC_ARG_LIST L_ANGLE "<" TYPE_ARG PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Other" COMMA "," WHITESPACE " " ASSOC_TYPE_ARG NAME_REF IDENT "Output" WHITESPACE " " EQ "=" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Addable" R_ANGLE ">" WHITESPACE " " PLUS "+" WHITESPACE " " TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Other" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n" R_CURLY "}" WHITESPACE "\n"