

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ __AOption_5;
extern OBJ _ASeq_2(OBJ,OBJ);OBJ __ASeq_2; /* :: */
extern OBJ _ASeq_3(OBJ);OBJ __ASeq_3; /* ::? */
extern OBJ _ASeq_4(OBJ);OBJ __ASeq_4; /* rt */
extern OBJ _ASeq_5(OBJ);OBJ __ASeq_5; /* ft */
OBJ __ASeq_6; /* <> */
extern OBJ _ASeq_7(OBJ);OBJ __ASeq_7; /* <>? */
OBJ __ASeq_9; /* empty */
extern OBJ _ASeq_10(OBJ,OBJ);OBJ __ASeq_10; /* cons */
extern OBJ _ASeq_11(OBJ);OBJ __ASeq_11; /* empty? */
extern OBJ _ASeq_12(OBJ);OBJ __ASeq_12; /* cons? */
extern OBJ _ASeq_13(OBJ);OBJ __ASeq_13; /* % */
extern OBJ _ASeq_14(OBJ,OBJ);OBJ __ASeq_14; /* %,1 */
extern OBJ _ASeq_15(OBJ,OBJ,OBJ);OBJ __ASeq_15; /* %,2 */
extern OBJ _ASeq_16(OBJ,OBJ,OBJ,OBJ);OBJ __ASeq_16; /* %,3 */
extern OBJ _ASeq_17(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASeq_17; /* %,4 */
extern OBJ _ASeq_18(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASeq_18; /* %,5 */
extern OBJ _ASeq_19(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASeq_19; /* %,6 */
extern OBJ _ASeq_20(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASeq_20; /* %,7 */
extern OBJ _ASeq_23(OBJ,OBJ);OBJ __ASeq_23; /* +% */
extern OBJ _ASeq_24(OBJ,OBJ,OBJ);OBJ __ASeq_24; /* .. */
extern OBJ _ASeq_25(OBJ,OBJ,OBJ);OBJ __ASeq_25; /* iter */
extern OBJ _ASeq_26(OBJ,OBJ);OBJ __ASeq_26; /* ++ */
extern OBJ _ASeq_27(OBJ,OBJ,OBJ);OBJ __ASeq_27; /* +/+ */
extern OBJ _ASeq_28(OBJ,OBJ,OBJ);OBJ __ASeq_28; /* +/+,1 */
extern OBJ _ASeq_29(OBJ,OBJ,OBJ);OBJ __ASeq_29; /* +%+ */
extern OBJ _ASeq_30(OBJ,OBJ,OBJ);OBJ __ASeq_30; /* +%+,1 */
extern OBJ _ASeq_31(OBJ,OBJ);OBJ __ASeq_31; /* take */
extern OBJ _ASeq_32(OBJ,OBJ);OBJ __ASeq_32; /* drop */
extern TUP2 _ASeq_33(OBJ,OBJ);OBJ __ASeq_33; /* split */
extern OBJ _ASeq_34(OBJ);OBJ __ASeq_34; /* front */
extern OBJ _ASeq_36(OBJ);OBJ __ASeq_36; /* revert */
extern OBJ _ASeq_38(OBJ);OBJ __ASeq_38; /* last */
extern OBJ _ASeq_39(OBJ);OBJ __ASeq_39; /* # */
extern OBJ _ASeq_40(OBJ,OBJ);OBJ __ASeq_40; /* exist? */
extern OBJ _ASeq_41(OBJ,OBJ);OBJ __ASeq_41; /* find? */
extern OBJ _ASeq_42(OBJ,OBJ);OBJ __ASeq_42; /* forall? */
extern OBJ _ASeq_43(OBJ,OBJ,OBJ);OBJ __ASeq_43; /* < */
extern OBJ _ASeq_44(OBJ,OBJ,OBJ);OBJ __ASeq_44; /* = */
extern OBJ _ASeq_51(OBJ,OBJ);OBJ __ASeq_51; /* rev */
extern OBJ _ASeq_52(OBJ,OBJ);OBJ __ASeq_52; /* #,1 */

extern OBJ _ASeq_2(OBJ x1,OBJ x2) /* :: */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _ASeq_3(OBJ x1) /* ::? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_3;
 }else{
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;}
 return r;}

extern OBJ _ASeq_4(OBJ x1) /* rt */
{OBJ r;
 if(ISPRM(x1)){
  HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
 }else{
  {OBJ x3=FLD1(x1,2);
   if(EXPRD(x1,1)){
    r=x3;
    FREE(FLD1(x1,1),1);DSPRDF(x1);
   }else{
    COPY(x3,1);
    r=x3;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _ASeq_5(OBJ x1) /* ft */
{OBJ r;
 if(ISPRM(x1)){
  HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
 }else{
  {OBJ x2=FLD1(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    FREE(FLD1(x1,2),1);DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _ASeq_7(OBJ x1) /* <>? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _ASeq_10(OBJ x1,OBJ x2) /* cons */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _ASeq_11(OBJ x1) /* empty? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _ASeq_12(OBJ x1) /* cons? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_3;
 }else{
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;}
 return r;}

extern OBJ _ASeq_13(OBJ x1) /* % */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=__ASeq_6;
 return r;}

extern OBJ _ASeq_14(OBJ x1,OBJ x2) /* %,1 */
{OBJ r;
 {OBJ x3;
  PRD1(2,x3);FLD1(x3,1)=x2;FLD1(x3,2)=__ASeq_6;
  PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x3;}
 return r;}

extern OBJ _ASeq_15(OBJ x1,OBJ x2,OBJ x3) /* %,2 */
{OBJ r;
 {OBJ x4;OBJ x5;
  PRD1(2,x4);FLD1(x4,1)=x3;FLD1(x4,2)=__ASeq_6;
  PRD1(2,x5);FLD1(x5,1)=x2;FLD1(x5,2)=x4;
  PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x5;}
 return r;}

extern OBJ _ASeq_16(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* %,3 */
{OBJ r;
 {
  PRD1(2,r);FLD1(r,1)=x1;
  FLD1(r,2)=_ASeq_15(x2,x3,x4);}
 return r;}

extern OBJ _ASeq_17(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* %,4 */
{OBJ r;
 {OBJ x6;OBJ x7;
  x6=_ASeq_15(x3,x4,x5);
  PRD1(2,x7);FLD1(x7,1)=x2;FLD1(x7,2)=x6;
  PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x7;}
 return r;}

extern OBJ _ASeq_18(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* %,5 */
{OBJ r;
 {
  PRD1(2,r);FLD1(r,1)=x1;
  FLD1(r,2)=_ASeq_17(x2,x3,x4,x5,x6);}
 return r;}

extern OBJ _ASeq_19(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* %,6 */
{OBJ r;
 {OBJ x8;OBJ x9;
  x8=_ASeq_17(x3,x4,x5,x6,x7);
  PRD1(2,x9);FLD1(x9,1)=x2;FLD1(x9,2)=x8;
  PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x9;}
 return r;}

extern OBJ _ASeq_20(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* %,7 */
{OBJ r;
 {
  PRD1(2,r);FLD1(r,1)=x1;
  FLD1(r,2)=_ASeq_19(x2,x3,x4,x5,x6,x7,x8);}
 return r;}

extern OBJ _ASeq_23(register OBJ x1,register OBJ x2) /* +% */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x1)){
   PRD1(2,*p1);FLD1(*p1,1)=x2;FLD1(*p1,2)=__ASeq_6;
  }else{
   {OBJ x21;OBJ x22=FLD1(x1,2);
    if(EXPRD(x1,1)){
     {
      RSOME(x1,*p1);
      x1=x22;p1=&FLD1(*p1,2);continue;}
    }else{
     x21=FLD1(x1,1);COPY(x21,1);COPY(x22,1);
     {
      FRPRD(x1,1);PRD1(2,*p1);FLD1(*p1,1)=x21;
      x1=x22;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _ASeq_24(register OBJ x1,register OBJ x2,register OBJ x3) /* .. */
{OBJ r;OBJ* p1=&r;
 for(;;){
  {OBJ x4;
   ANat_81(x1,x2,x4);
   if(ISTGPRM(x4,1)){
    FRCLS(x3,1);
    *p1=__ASeq_6;
   }else{
    CPCLS(x3,1);
    {OBJ x5;OBJ x6;
     x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x1);
     ANat_2(x1,x6);
     PRD1(2,*p1);FLD1(*p1,1)=x5;
     x1=x6;p1=&FLD1(*p1,2);continue;}}}
  break;}
 return r;}

extern OBJ _ASeq_25(register OBJ x1,register OBJ x2,register OBJ x3) /* iter */
{OBJ r;OBJ* p1=&r;
 for(;;){
  COPY(x1,1);
  CPCLS(x3,1);
  {OBJ x4;
   x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x1);
   if(ISTGPRM(x4,1)){
    COPY(x1,1);
    CPCLS(x2,1);
    {OBJ x8;
     x8=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x1);
     PRD1(2,*p1);FLD1(*p1,1)=x1;
     x1=x8;p1=&FLD1(*p1,2);continue;}
   }else{
    FREE(x1,1);
    FRCLS(x2,1);
    FRCLS(x3,1);
    *p1=__ASeq_6;}}
  break;}
 return r;}

extern OBJ _ASeq_26(register OBJ x1,register OBJ x2) /* ++ */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x1)){
   *p1=x2;
  }else{
   {OBJ x21;OBJ x22=FLD1(x1,2);
    if(EXPRD(x1,1)){
     {
      RSOME(x1,*p1);
      x1=x22;p1=&FLD1(*p1,2);continue;}
    }else{
     x21=FLD1(x1,1);COPY(x21,1);COPY(x22,1);
     {
      FRPRD(x1,1);PRD1(2,*p1);FLD1(*p1,1)=x21;
      x1=x22;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _ASeq_27(OBJ x1,OBJ x2,OBJ x3) /* +/+ */
{OBJ r;
 if(ISPRM(x2)){
  FREE(x1,1);
  if(ISPRM(x3)){
   r=__ASeq_6;
  }else{
   r=x3;}
 }else{
  if(ISPRM(x3)){
   FREE(x1,1);
   r=x2;
  }else{
   {OBJ x24;
    PRD1(2,x24);FLD1(x24,1)=x1;FLD1(x24,2)=x3;
    r=_ASeq_26(x2,x24);}}}
 return r;}

extern OBJ _ASeq_28(OBJ x1,OBJ x2,OBJ x3) /* +/+,1 */
{OBJ r;
 if(ISPRM(x2)){
  FREE(x1,1);
  if(ISPRM(x3)){
   r=__ASeq_6;
  }else{
   r=x3;}
 }else{
  if(ISPRM(x3)){
   FREE(x1,1);
   r=x2;
  }else{
   {OBJ x24;
    x24=_ASeq_26(x1,x3);
    r=_ASeq_26(x2,x24);}}}
 return r;}

extern OBJ _ASeq_29(OBJ x1,OBJ x2,OBJ x3) /* +%+ */
{OBJ r;
 {OBJ x4;
  PRD1(2,x4);FLD1(x4,1)=x1;FLD1(x4,2)=x3;
  r=_ASeq_26(x2,x4);}
 return r;}

extern OBJ _ASeq_30(OBJ x1,OBJ x2,OBJ x3) /* +%+,1 */
{OBJ r;
 {OBJ x4;
  x4=_ASeq_26(x1,x3);
  r=_ASeq_26(x2,x4);}
 return r;}

extern OBJ _ASeq_31(register OBJ x1,register OBJ x2) /* take */
{OBJ r;OBJ* p1=&r;
 for(;;){
  {OBJ x3;
   ANat_6(x1,x3);
   if(ISTGPRM(x3,1)){
    FREE(x2,1);
    *p1=__ASeq_6;
   }else{
    {OBJ x4;
     ANat_3(x1,x4);
     if(ISTGPRM(x4,1)){
      if(ISPRM(x2)){
       *p1=__ASeq_6;
      }else{
       {OBJ x24;OBJ x25=FLD1(x2,2);
	if(EXPRD(x2,1)){
	 {OBJ x26;
	  ANat_4(x1,x26);
	  RSOME(x2,*p1);
	  x1=x26;x2=x25;p1=&FLD1(*p1,2);continue;}
	}else{
	 x24=FLD1(x2,1);COPY(x24,1);COPY(x25,1);
	 {OBJ x26;
	  ANat_4(x1,x26);
	  FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x24;
	  x1=x26;x2=x25;p1=&FLD1(*p1,2);continue;}}}}
     }else{
      HLT("Seq at <unknown> : missing else in take\'Seq:nat**seq->seq");}}}}
  break;}
 return r;}

extern OBJ _ASeq_32(register OBJ x1,register OBJ x2) /* drop */
{OBJ r;
 for(;;){
  {OBJ x3;
   ANat_6(x1,x3);
   if(ISTGPRM(x3,1)){
    r=x2;
   }else{
    {OBJ x4;
     ANat_3(x1,x4);
     if(ISTGPRM(x4,1)){
      if(ISPRM(x2)){
       r=__ASeq_6;
      }else{
       {OBJ x16=FLD1(x2,2);
	if(EXPRD(x2,1)){
	 FREE(FLD1(x2,1),1);DSPRDF(x2);
	}else{
	 COPY(x16,1);
	 FRPRD(x2,1);}
	{OBJ x17;
	 ANat_4(x1,x17);
	 x1=x17;x2=x16;continue;}}}
     }else{
      HLT("Seq at <unknown> : missing else in drop\'Seq:nat**seq->seq");}}}}
  break;}
 return r;}

extern TUP2 _ASeq_33(register OBJ x1,register OBJ x2) /* split */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  {OBJ x3;
   ANat_6(x1,x3);
   if(ISTGPRM(x3,1)){
    *p1=__ASeq_6;*p2=x2;
   }else{
    {OBJ x4;
     ANat_3(x1,x4);
     if(ISTGPRM(x4,1)){
      if(ISPRM(x2)){
       *p1=__ASeq_6;*p2=__ASeq_6;
      }else{
       {OBJ x27;OBJ x28=FLD1(x2,2);
	if(EXPRD(x2,1)){
	 {OBJ x29;
	  ANat_4(x1,x29);
	  RSOME(x2,*p1);
	  x1=x29;x2=x28;p1=&FLD1(*p1,2);continue;}
	}else{
	 x27=FLD1(x2,1);COPY(x27,1);COPY(x28,1);
	 {OBJ x29;
	  ANat_4(x1,x29);
	  FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x27;
	  x1=x29;x2=x28;p1=&FLD1(*p1,2);continue;}}}}
     }else{
      HLT("Seq at <unknown> : missing else in split\'Seq:nat**seq->seq**seq");}}}}
  break;}
 return r;}
extern OBJ _ASeq_33_c(OBJ x1,OBJ x2) /* split */
{OBJ r;
 {TUP2 t=_ASeq_33(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _ASeq_34(register OBJ x1) /* front */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x1)){
   *p1=__ASeq_6;
  }else{
   {OBJ x24=FLD1(x1,1);OBJ x25=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
    if(x_x1){
    }else{
     COPY(x24,1);COPY(x25,1);}
    if(ISPRM(x25)){
     if(x_x1){
      DSPRDF(x1);
     }else{
      FRPRD(x1,1);}
     FREE(x24,1);
     *p1=__ASeq_6;
    }else{
     {
      if(x_x1){
       RSOME(x1,*p1);
      }else{
       FRPRD(x1,1);PRD1(2,*p1);FLD1(*p1,1)=x24;}
      x1=x25;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _ASeq_36(OBJ x1) /* revert */
{OBJ r;
 r=_ASeq_51(x1,__ASeq_6);
 return r;}

extern OBJ _ASeq_38(register OBJ x1) /* last */
{OBJ r;
 for(;;){
  if(ISPRM(x1)){
   HLT("last\'Seq applied to empty sequence");
  }else{
   {OBJ x20=FLD1(x1,1);OBJ x21=FLD1(x1,2);
    if(EXPRD(x1,1)){
     DSPRDF(x1);
    }else{
     COPY(x20,1);COPY(x21,1);
     FRPRD(x1,1);}
    if(ISPRM(x21)){
     r=x20;
    }else{
     FREE(x20,1);
     x1=x21;continue;}}}
  break;}
 return r;}

extern OBJ _ASeq_39(OBJ x1) /* # */
{OBJ r;
 r=_ASeq_52(x1,__ANat_5);
 return r;}

extern OBJ _ASeq_40(register OBJ x1,register OBJ x2) /* exist? */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   r=__ABUILTIN_3;
  }else{
   {OBJ x21=FLD1(x2,1);OBJ x22=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x21,1);COPY(x22,1);
     FRPRD(x2,1);}
    CPCLS(x1,1);
    {OBJ x24;
     x24=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x21);
     if(ISTGPRM(x24,1)){
      FRCLS(x1,1);
      FREE(x22,1);
      r=__ABUILTIN_5;
     }else{
      x2=x22;continue;}}}}
  break;}
 return r;}

extern OBJ _ASeq_41(register OBJ x1,register OBJ x2) /* find? */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   r=__AOption_5;
  }else{
   {OBJ x21=FLD1(x2,1);OBJ x22=FLD1(x2,2);
    if(EXPRD(x2,1)){
     COPY(x21,1);
     DSPRDF(x2);
    }else{
     COPY(x21,2);COPY(x22,1);
     FRPRD(x2,1);}
    CPCLS(x1,1);
    {OBJ x24;
     x24=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x21);
     if(ISTGPRM(x24,1)){
      FRCLS(x1,1);
      FREE(x22,1);
      PRD1(1,r);FLD1(r,1)=x21;
     }else{
      FREE(x21,1);
      x2=x22;continue;}}}}
  break;}
 return r;}

extern OBJ _ASeq_42(register OBJ x1,register OBJ x2) /* forall? */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   r=__ABUILTIN_5;
  }else{
   {OBJ x21=FLD1(x2,1);OBJ x22=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x21,1);COPY(x22,1);
     FRPRD(x2,1);}
    CPCLS(x1,1);
    {OBJ x24;
     x24=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x21);
     if(ISTGPRM(x24,1)){
      x2=x22;continue;
     }else{
      FRCLS(x1,1);
      FREE(x22,1);
      r=__ABUILTIN_3;}}}}
  break;}
 return r;}

extern OBJ _ASeq_43(register OBJ x1,register OBJ x2,register OBJ x3) /* < */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    r=__ABUILTIN_3;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    r=__ABUILTIN_5;}
  }else{
   {OBJ x65=FLD1(x2,1);OBJ x66=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x65,1);COPY(x66,1);
     FRPRD(x2,1);}
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x65,1);
     FREE(x66,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x67=FLD1(x3,1);OBJ x68=FLD1(x3,2);
      if(EXPRD(x3,1)){
       COPY(x67,1);
       DSPRDF(x3);
      }else{
       COPY(x67,2);COPY(x68,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x65,1);
      {OBJ x71;
       x71=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x65,x67);
       if(ISTGPRM(x71,1)){
	FRCLS(x1,1);
	FREE(x65,1);
	FREE(x66,1);
	FREE(x67,1);
	FREE(x68,1);
	r=__ABUILTIN_5;
       }else{
	CPCLS(x1,1);
	{OBJ x72;
	 x72=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x67,x65);
	 if(ISTGPRM(x72,1)){
	  FRCLS(x1,1);
	  FREE(x66,1);
	  FREE(x68,1);
	  r=__ABUILTIN_3;
	 }else{
	  x2=x66;x3=x68;continue;}}}}}}}}
  break;}
 return r;}

extern OBJ _ASeq_44(register OBJ x1,register OBJ x2,register OBJ x3) /* = */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    r=__ABUILTIN_5;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    r=__ABUILTIN_3;}
  }else{
   {OBJ x62=FLD1(x2,1);OBJ x63=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x62,1);COPY(x63,1);
     FRPRD(x2,1);}
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x62,1);
     FREE(x63,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x64=FLD1(x3,1);OBJ x65=FLD1(x3,2);
      if(EXPRD(x3,1)){
       DSPRDF(x3);
      }else{
       COPY(x64,1);COPY(x65,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      {OBJ x68;
       x68=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x62,x64);
       if(ISTGPRM(x68,1)){
	x2=x63;x3=x65;continue;
       }else{
	FRCLS(x1,1);
	FREE(x63,1);
	FREE(x65,1);
	r=__ABUILTIN_3;}}}}}}
  break;}
 return r;}

extern OBJ _ASeq_51(register OBJ x1,register OBJ x2) /* rev */
{OBJ r;
 for(;;){
  if(ISPRM(x1)){
   r=x2;
  }else{
   {OBJ x21;OBJ x22=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
    if(x_x1){
    }else{
     x21=FLD1(x1,1);COPY(x21,1);COPY(x22,1);}
    {OBJ x24;
     if(x_x1){
      RSOME(x1,x24);FLD1(x24,2)=x2;
     }else{
      FRPRD(x1,1);PRD1(2,x24);FLD1(x24,1)=x21;FLD1(x24,2)=x2;}
     x1=x22;x2=x24;continue;}}}
  break;}
 return r;}

extern OBJ _ASeq_52(register OBJ x1,register OBJ x2) /* #,1 */
{OBJ r;
 for(;;){
  if(ISPRM(x1)){
   r=x2;
  }else{
   {OBJ x14=FLD1(x1,2);
    if(EXPRD(x1,1)){
     FREE(FLD1(x1,1),1);DSPRDF(x1);
    }else{
     COPY(x14,1);
     FRPRD(x1,1);}
    {OBJ x15;
     ANat_2(x2,x15);
     x1=x14;x2=x15;continue;}}}
  break;}
 return r;}



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

static OBJ _mt_3_2_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 return r;}
static OBJ _mt_3_2_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 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_5_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5);
 return r;}

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

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

static OBJ _mt_8_0_8(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8);
 return r;}

init_ASeq()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_AOption();
 CLS(2,_ASeq_31,__ASeq_31);
 CLS(3,_ASeq_30,__ASeq_30);
 CLS(3,_ASeq_29,__ASeq_29);
 CLS(3,_ASeq_28,__ASeq_28);
 CLS(3,_ASeq_27,__ASeq_27);
 CLS(2,_ASeq_26,__ASeq_26);
 CLS(3,_ASeq_25,__ASeq_25);
 CLS(3,_ASeq_24,__ASeq_24);
 CLS(2,_ASeq_23,__ASeq_23);
 CLS(8,_ASeq_20,__ASeq_20);
 CLS(2,_ASeq_52,__ASeq_52);
 CLS(7,_ASeq_19,__ASeq_19);
 CLS(2,_ASeq_51,__ASeq_51);
 CLS(6,_ASeq_18,__ASeq_18);
 CLS(5,_ASeq_17,__ASeq_17);
 CLS(4,_ASeq_16,__ASeq_16);
 CLS(3,_ASeq_15,__ASeq_15);
 CLS(2,_ASeq_14,__ASeq_14);
 CLS(1,_ASeq_13,__ASeq_13);
 CLS(1,_ASeq_12,__ASeq_12);
 CLS(3,_ASeq_44,__ASeq_44);
 CLS(1,_ASeq_11,__ASeq_11);
 CLS(3,_ASeq_43,__ASeq_43);
 CLS(2,_ASeq_10,__ASeq_10);
 CLS(2,_ASeq_42,__ASeq_42);
 CLS(2,_ASeq_41,__ASeq_41);
 CLS(2,_ASeq_40,__ASeq_40);
 CLS(1,_ASeq_7,__ASeq_7);
 CLS(1,_ASeq_39,__ASeq_39);
 CLS(1,_ASeq_38,__ASeq_38);
 CLS(1,_ASeq_5,__ASeq_5);
 CLS(1,_ASeq_4,__ASeq_4);
 CLS(1,_ASeq_36,__ASeq_36);
 CLS(1,_ASeq_3,__ASeq_3);
 CLS(2,_ASeq_2,__ASeq_2);
 CLS(1,_ASeq_34,__ASeq_34);
 CLS(2,_ASeq_33_c,__ASeq_33);
 CLS(2,_ASeq_32,__ASeq_32);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);
 MTH(5,0,5,_mt_5_0_5);LZYMTH(5,0,5,_mt_5_0_5);
 MTH(6,0,6,_mt_6_0_6);LZYMTH(6,0,6,_mt_6_0_6);
 MTH(7,0,7,_mt_7_0_7);LZYMTH(7,0,7,_mt_7_0_7);
 MTH(8,0,8,_mt_8_0_8);LZYMTH(8,0,8,_mt_8_0_8);
 PRM1(__ASeq_6);
 __ASeq_9=__ASeq_6;}

