Haskell-like functional EDSL for template metafunctions.
This example contains two programs. Both of them define and execute a few
template metaprograms. One of the do it by using Boost.MPL directly, while the
other one defines the template metaprograms using the EDSL.
