Boost.Proto, rewritten and redesigned for C++11