58    static auto the() -> Heap&;
 
   60    auto allocate(usize size, usize align) -> di::Result<di::AllocationResult<>>;
 
   66    constexpr static auto block_sizes = di::Array {
 
   67        di::Tuple { 64ZU, 64ZU },     di::Tuple { 128ZU, 128ZU },    di::Tuple { 256ZU, 256ZU },
 
   68        di::Tuple { 512ZU, 512ZU },   di::Tuple { 1024ZU, 1024ZU },  di::Tuple { 2048ZU, 2048ZU },
 
   69        di::Tuple { 4096ZU, 4096ZU }, di::Tuple { 16384ZU, 4096ZU },
 
   72    constexpr static auto block_size_count = block_sizes.size();
 
   74    constexpr static auto get_block_index(usize size, usize align) -> di::Optional<usize> {
 
   75        for (
auto i = 0ZU; i < block_size_count; ++i) {
 
   76            auto [block_size, block_align] = block_sizes[i];
 
   77            if (size <= block_size && align <= block_align) {
 
   85    di::Synchronized<di::Array<detail::FreeListList, block_size_count>> m_blocks;