pub fn mark_smaller(&mut self, pointer: PointerIdx, slots: usize) {
        // grab the full allocation
        let size = self.mark(pointer);
        if size == slots { return; }

        // let go of the end; may cause minor fragmentation
        assert!(slots < size);
        self.free(Pointer::new(pointer.into()).add(slots as u64), size - slots);
    }
Mark a pointer for use reserving a certain number of slots,
returns the extra free space to the heap.
passerine-qualm/src/heap/range_set.rs