ter
  native-fn
  [arena]
  (let [ret-ptr (native-fn)]
    (-&gt; (reinterpret ret-ptr (mem/size-of ::vector) arena free-vector!)
        (deserialize ::vector))))
</code></pre>
<p>This function takes an arena and returns the deserialized vector, and it will free the pointer when the arena closes.</p>
<h3><a href="#tagged-union" id="tagged-union"></a>Tagged Union</h3>
<p>For the tagged union type, we will represent the value as a vector of a keyword naming the tag and the value. The type itself will need to