Our allocator impl is functional, but wrapped in a class (TransactionalAllocator)
Why?
- The previous allocator was class-based, with similar api
- The transaction feature, that was much simpler to adopt under the class api, and not the functional one.
Goal:
Refactor what's needed to use the functional api directly, and have some kind of transactions, and don't create closures