We will most likely need to customize `alloc` to ensure fallible allocations everywhere, as well as being able to pass flags etc.