template<class S1, class S2> struct cartesian_product_types
template<class V, class S, class State>
typedef typename boost::mpl::fold<S
, boost::mpl::push_back< boost::mpl::_1
typedef typename boost::mpl::fold<S1
, inner<boost::mpl::_2, S2, boost::mpl::_1>
But seriously, I think the language is amazing. The fact that they built a turing-complete language inside the template engine essentially by accident (thus allowing meta programming and modern C++), the fact that by now we can write simple compile time compilers (see boost proto) and the fact that you can so radically change the syntax of the language that you can basically make it look like anything you want should convince someone who spends some time with a C++ compiler and a couple of Boost libraries of this fact.