*[t1, ..., tn] is represented as pointer to array containing tuple content. All ti are treated, as if they where passed to function, i.e. sizeof(ti) == sizeof(void*).
f(*['a,int,'b] x) { let (_, y, _) = x {use(y);} }
is translated to:
f(void **x) { use((ptroff)x[1]) }