let new_block_ptr = unsafe { NonNull::new_unchecked(Box::into_raw(Box::new(new_block))) };
let mut freelist_ptrs: std::collections::HashSet<*mut Entry<T>> = std::collections::HashSet::new();
fn iter_blocks<'a>(guard: &'a MutexGuard<'_, BlockList<T, N>>) -> BlockIter<'a, T, N> {
/// Removes free blocks from the underlying block allocator, see [`BlockAllocator::remove_free_blocks`].
/// If the element is free, this points to the next entry in the freelist, or null if this is the last entry.