+Tycon mkTuple ( Int n )
+{
+ Int i;
+ if (n >= NUM_TUPLES)
+ internal("mkTuple: request for tuple of unsupported size");
+ for (i = TYCMIN; i < tyconHw; i++)
+ if (tycon(i).tuple == n) return i;
+ internal("mkTuple: request for non-existent tuple");
+}
+
+Void allocTupleTycon ( Int n )
+{
+ Int i;
+ char buf[20];
+ Kind k;
+ Tycon t;
+ for (i = TYCMIN; i < tyconHw; i++)
+ if (tycon(i).tuple == n) return;
+ sprintf(buf,"Tuple%d",n);
+ //t = addPrimTycon(findText(buf),simpleKind(n),n, DATATYPE,NIL);
+
+ k = STAR;
+ for (i = 0; i < n; i++) k = ap(STAR,k);
+ t = newTycon(findText(buf));
+ tycon(t).kind = k;
+ tycon(t).tuple = n;
+ tycon(t).what = DATATYPE;
+}
+