The rebind struct here is mandatory because we use non type template arguments for PoolAllocator. See https://en.cppreference.com/w/cpp/named_req/Allocator#cite_note‐2
Synopsis
Declared in <support/allocators/pool.h>
template<typename U>
struct rebind;