M0109Double free via call
Reported by the compiler as an error or warning.
mettle explain M0109
An allocation is freed both by a callee that takes ownership and by the caller (or by two consuming calls).
Fix: decide which side owns the pointer and free only there.