

#include "BUILTIN.h"
extern OBJ _AISeq_26(OBJ);extern OBJ __AISeq_26;
extern OBJ _AISeq_27(OBJ);extern OBJ __AISeq_27;

#include "Nat.h"
extern OBJ _AISeqMap_3(OBJ,OBJ);extern OBJ __AISeqMap_3;
extern OBJ _AISeqZip_4(OBJ,OBJ,OBJ);OBJ __AISeqZip_4; /* zip */
extern TUP2 _AISeqZip_5(OBJ,OBJ);OBJ __AISeqZip_5; /* unzip */
extern OBJ _AISeqZip_6(OBJ,OBJ,OBJ,OBJ);OBJ __AISeqZip_6; /* zip'6 */
extern OBJ _AISeqZip_7(OBJ,OBJ,OBJ,OBJ);OBJ __AISeqZip_7; /* zip'7 */
extern OBJ _AISeqZip_8(OBJ,OBJ);OBJ __AISeqZip_8; /* unzip'8 */
extern OBJ _AISeqZip_9(OBJ,OBJ);OBJ __AISeqZip_9; /* unzip'9 */

extern OBJ _AISeqZip_4(OBJ x1,OBJ x2,OBJ x3) /* zip */
{OBJ r;
 CPCLS(__AISeqZip_6,1);
 CPCLS(__AISeqZip_7,1);
 CPCLS(x1,1);
 CPPRD(x2,1);
 CPPRD(x3,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AISeqZip_6,3))(__AISeqZip_6,x1,x2,x3);
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AISeqZip_7,3))(__AISeqZip_7,x1,x2,x3);
  PRD1(2,r);FLD1(r,1)=x4;FLD1(r,2)=x5;}
 return r;}

extern TUP2 _AISeqZip_5(OBJ x1,OBJ x2) /* unzip */
{TUP2 r;
 CPCLS(__AISeqZip_8,1);
 CPCLS(__AISeqZip_9,1);
 CPCLS(x1,1);
 CPPRD(x2,1);
 {OBJ x3;OBJ x4;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__AISeqZip_8,1))(__AISeqZip_8,x1);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AISeqZip_9,1))(__AISeqZip_9,x1);
  r.c1=_AISeqMap_3(x4,x2);
  r.c2=_AISeqMap_3(x3,x2);}
 return r;}
extern OBJ _AISeqZip_5_c(OBJ x1,OBJ x2) /* unzip */
{OBJ r;
 {TUP2 t=_AISeqZip_5(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AISeqZip_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* zip'6 */
{OBJ r;
 CPCLS(__AISeq_27,2);
 {OBJ x5;OBJ x6;
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AISeq_27,2))(__AISeq_27,x2,__ABUILTIN_20);
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AISeq_27,2))(__AISeq_27,x3,__ABUILTIN_20);
  r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x5,x6);}
 return r;}

extern OBJ _AISeqZip_7(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* zip'7 */
{OBJ r;
 CPCLS(__AISeq_26,2);
 {OBJ x5;OBJ x6;
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AISeq_26,2))(__AISeq_26,x2,__ABUILTIN_20);
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AISeq_26,2))(__AISeq_26,x3,__ABUILTIN_20);
  r=_AISeqZip_4(x1,x5,x6);}
 return r;}

extern OBJ _AISeqZip_8(OBJ x1,OBJ x2) /* unzip'8 */
{OBJ r;
 {OBJ x4;
  {OBJ t=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
   x4=FLD1(t,1);
   r=FLD1(t,2);
   DSPRDF(t);}
  FREE(x4,1);}
 return r;}

extern OBJ _AISeqZip_9(OBJ x1,OBJ x2) /* unzip'9 */
{OBJ r;
 {OBJ x5;
  {OBJ t=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
   r=FLD1(t,1);
   x5=FLD1(t,2);
   DSPRDF(t);}
  FREE(x5,1);}
 return r;}

static OBJ _mt_4_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_4_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4);
 return r;}

static OBJ _mt_4_3_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 return r;}
static OBJ _mt_4_3_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AISeqZip()
{
 static int visited=0; if(visited) return; visited=1;
 init_AISeq();
 init_ANat();
 init_AOption();
 init_ASeq();
 init_ACompose();
 init_AAnonPair();
 init_AISeqMap();
 CLS(2,_AISeqZip_9,__AISeqZip_9);
 CLS(2,_AISeqZip_8,__AISeqZip_8);
 LCLS(4,_AISeqZip_7,__AISeqZip_7);
 LCLS(4,_AISeqZip_6,__AISeqZip_6);
 CLS(2,_AISeqZip_5_c,__AISeqZip_5);
 CLS(3,_AISeqZip_4,__AISeqZip_4);
 MTH(4,0,3,_mt_4_0_3);LZYMTH(4,0,3,_mt_4_0_3);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);
 MTH(4,3,1,_mt_4_3_1);LZYMTH(4,3,1,_mt_4_3_1_l);}

