boost::proto::compose_generators::result<This(Expr)>
template<typename This, typename Expr> struct result<This(Expr)> : boost::result_of< Second(typename boost::result_of<First(Expr)>::type) > { };