The hash function of a unified data is now configurable.

It's to avoid having std::hash defined for boost::container::flat_set.