all expr types have nested ::id, add deep_copy() for storing all nodes by value, and BOOST_PROTO_AUTO(var, expr) as a shortcut for BOOST_AUTO(var, proto::deep_copy(expr))