boost::proto::switch_::impl
template<typename Expr, typename State, typename Data> struct impl : Cases::template case_<typename Expr::tag_type>::template impl<Expr, State, Data> { };