template <typename A, bool IsTriviallyDestructible =
                          std::is_trivially_destructible_v<ValueType<A>> &&
                          std::is_same_v<A, std::allocator<ValueType<A>>>>

struct DestroyAdapter