the representation of a packed array of tuples is a tuple of packed arrays. This makes
the zip_exn
and unzip
functions constant time.
This function only needs implementation if t
exposed to be a polymorphic variant.
Despite what the type reads, this does *not* produce a function after reading;
instead it takes the constructor tag (int) before reading and reads the rest of the
variant t
afterwards.