Pure destination-passing style in Linear Haskell

Destinations give you control over your memory allocations, and linear types make them pure.