*[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])
}