Pure destination-passing style in Linear Haskell
Destinations give you control over your memory allocations, and linear types make them pure.