Boost.Hana  1.7.1
Your standard library for metaprogramming
Todo List
Member boost::hana::A (T_1) \times \cdots \times A(T_n) \to A(U) @f$. const expr auto ap
Consider giving access to all the arguments to the tag-dispatched implementation for performance purposes.
Class boost::hana::constant_detail::which< A, B, C >
This is an awful hack to avoid having
Class boost::hana::detail::has_duplicates< T >
This implementation is O(n^2). We could do it in O(n), but that would require a more elaborate setup including storage with O(1) lookup (which could be based on a compile-time hash). If we implement such storage for associative sequences, we could use it to optimize this.
Member boost::hana::max
Can't specify the signature here either. See min for details.
Member boost::hana::min
We can't specify the signature right now, because the tag of the returned object depends on whether x < y or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y) returns a common data type of x and y, and then the behavior of min would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement.
page User Manual

Improve this explanation and talk about non-integral constant expressions wrapped into types.

Explain how side-effects may not appear inside constant expressions, even if the expression they yield are not accessed.