Edward Diener
[...]
But I do not understand from your documentation how your library relates to Boost MPL. The Boost MPL library is about manipulating and creating types at compile time, and creating logic paths again at compile time to manipulate types. All of this is encapulated by the MPL's notion of metafunctions to do compile-time programming. But I cannot get from your documentation any of the MPL equivalence of how any of this is done with your library. Is your library meant to duplicate/replace this MPL functionality in some way ? Or is it meant to do something else entirely not related to compile-time programming ?
I had started to reply with a lengthy explanation of how it works, but that would not fix the problem because it is now clear that my documentation _is_ the problem. I'll improve it, make it more explicit and then post back.
I am only asking this because I had been told that your library is at the the least a replacement for MPL compile-time type manipulation functionality using C++11 on up.
It is, and it's also a replacement for Fusion and hence many other metaprogramming utilities. In particular, I'll write a cheatsheet showing how to do everything in the MPL and everything in Fusion with Hana. Thank you for taking the time to read the documentation (I assume you did) and give me your feedback. Regards, Louis