We should make it clear that all standard UnaryTypeTraits, BinaryTypeTraits and TransformationTraits are not final.
Otherwise it is not safe to use them as arguments to a template like this:
template<typename C1, typename C2> struct conjunction : conditional_t<C1::value, C2, C1> { };