// use typeid() comparison, e.g., when our types may travel across
// different shared libraries.
template<typename ValueType>
// use typeid() comparison, e.g., when our types may travel across
// different shared libraries.
template<typename ValueType>