

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ __ASeq_2;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern TUP2 _ASeq_33(OBJ,OBJ);extern OBJ __ASeq_33;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern TUP2 _ASeqFilter_8(OBJ,OBJ);extern OBJ __ASeqFilter_8;
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;
extern OBJ _AMySeqFun3_8(OBJ,OBJ,OBJ);extern OBJ __AMySeqFun3_8;
OBJ __AMySeqFun1_2; /* |= */
extern OBJ _AMySeqFun1_3(OBJ);OBJ __AMySeqFun1_3; /* |=? */
OBJ __AMySeqFun1_4; /* > */
extern OBJ _AMySeqFun1_5(OBJ);OBJ __AMySeqFun1_5; /* >? */
OBJ __AMySeqFun1_6; /* < */
extern OBJ _AMySeqFun1_7(OBJ);OBJ __AMySeqFun1_7; /* <? */
OBJ __AMySeqFun1_8; /* = */
extern OBJ _AMySeqFun1_9(OBJ);OBJ __AMySeqFun1_9; /* =? */
extern TUP2 _AMySeqFun1_11(OBJ,OBJ);OBJ __AMySeqFun1_11; /* existMap */
extern OBJ _AMySeqFun1_12(OBJ,OBJ);OBJ __AMySeqFun1_12; /* || */
extern OBJ _AMySeqFun1_13(OBJ,OBJ);OBJ __AMySeqFun1_13; /* ||| */
extern OBJ _AMySeqFun1_14(OBJ,OBJ);OBJ __AMySeqFun1_14; /* uniqueSort */
extern OBJ _AMySeqFun1_15(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_15; /* cmp */
extern OBJ _AMySeqFun1_16(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_16; /* - */
extern OBJ _AMySeqFun1_17(OBJ);OBJ __AMySeqFun1_17; /* combine */
extern OBJ _AMySeqFun1_18(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_18; /* insert */
extern OBJ _AMySeqFun1_19(OBJ,OBJ);OBJ __AMySeqFun1_19; /* pos */
extern OBJ _AMySeqFun1_20(OBJ,OBJ,OBJ,OBJ);OBJ __AMySeqFun1_20; /* union */
extern TUP2 _AMySeqFun1_32(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_32; /* | */
extern OBJ _AMySeqFun1_34(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_34; /* uniqueSort,1 */
extern TUP4 _AMySeqFun1_35(OBJ,OBJ);OBJ __AMySeqFun1_35; /* halfs */
extern OBJ _AMySeqFun1_36(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_36; /* merge */
extern OBJ _AMySeqFun1_38(OBJ,OBJ,OBJ,OBJ);OBJ __AMySeqFun1_38; /* cmp,1 */
extern OBJ _AMySeqFun1_39(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_39; /* ||'39 */
extern OBJ _AMySeqFun1_40(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_40; /* -'40 */
OBJ __AMySeqFun1_41; /* combine'41 */
extern OBJ _AMySeqFun1_42(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_42; /* union'42 */
extern OBJ _AMySeqFun1_43(OBJ,OBJ,OBJ);OBJ __AMySeqFun1_43; /* union'43 */

extern OBJ _AMySeqFun1_3(OBJ x1) /* |=? */
{OBJ r;
 if(ISTGPRM(x1,3)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AMySeqFun1_5(OBJ x1) /* >? */
{OBJ r;
 if(ISTGPRM(x1,2)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AMySeqFun1_7(OBJ x1) /* <? */
{OBJ r;
 if(ISTGPRM(x1,1)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AMySeqFun1_9(OBJ x1) /* =? */
{OBJ r;
 if(ISTGPRM(x1,0)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern TUP2 _AMySeqFun1_11(register OBJ x1,register OBJ x2) /* existMap */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=__ABUILTIN_5;*p2=__ASeq_6;
  }else{
   {OBJ x27=FLD1(x2,1);OBJ x28=FLD1(x2,2);
    COPY(x27,1);COPY(x28,1);
    CPCLS(x1,1);
    {OBJ x31;OBJ x32;
     {OBJ t=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x27);
      x31=FLD1(t,1);
      x32=FLD1(t,2);
      DSPRDF(t);}
     if(ISTGPRM(x31,1)){
      if(EXPRD(x2,1)){
       DSPRD(x2);
      }else{
       DCPRD(x2,1);}
      {
       PRD1(2,*p2);FLD1(*p2,1)=x32;
       x2=x28;p2=&FLD1(*p2,2);continue;}
     }else{
      *p1=x31;
      FRCLS(x1,1);
      FREE(x28,1);
      FREE(x32,1);
      *p2=x2;}}}}
  break;}
 return r;}
extern OBJ _AMySeqFun1_11_c(OBJ x1,OBJ x2) /* existMap */
{OBJ r;
 {TUP2 t=_AMySeqFun1_11(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AMySeqFun1_12(register OBJ x1,register OBJ x2) /* || */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=__ASeq_6;
  }else{
   {OBJ x24=FLD1(x2,1);OBJ x25=FLD1(x2,2);
    if(EXPRD(x2,1)){
     COPY(x24,1);
     CPCLS(x1,1);
     CPCLS(__AMySeqFun1_39,1);
     CPCLS(__ABUILTIN_7,1);
     CPCLS(__ACompose_4,1);
     {OBJ x27;OBJ x28;OBJ x29;
      x27=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AMySeqFun1_39,2))(__AMySeqFun1_39,x1,x24);
      x28=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__ABUILTIN_7,x27);
      x29=_ASeqFilter_2(x28,x25);
      RSOME(x2,*p1);
      x2=x29;p1=&FLD1(*p1,2);continue;}
    }else{
     COPY(x24,2);COPY(x25,1);
     CPCLS(x1,1);
     CPCLS(__AMySeqFun1_39,1);
     CPCLS(__ABUILTIN_7,1);
     CPCLS(__ACompose_4,1);
     {OBJ x27;OBJ x28;OBJ x29;
      x27=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AMySeqFun1_39,2))(__AMySeqFun1_39,x1,x24);
      x28=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__ABUILTIN_7,x27);
      x29=_ASeqFilter_2(x28,x25);
      FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x24;
      x2=x29;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _AMySeqFun1_13(register OBJ x1,register OBJ x2) /* ||| */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=x2;
  }else{
   {OBJ x21=FLD1(x2,1);OBJ x22=FLD1(x2,2);
    if(EXPRD(x2,1)){
     CPCLS(x1,1);
     {TUP2 x25;
      x25=_AMySeqFun1_32(x1,x21,x22);
      RSOME(x2,*p1);FLD1(*p1,1)=x25.c2;
      x2=x25.c1;p1=&FLD1(*p1,2);continue;}
    }else{
     COPY(x21,1);COPY(x22,1);
     CPCLS(x1,1);
     {TUP2 x25;
      x25=_AMySeqFun1_32(x1,x21,x22);
      FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x25.c2;
      x2=x25.c1;p1=&FLD1(*p1,2);continue;}}}}
  break;}
 return r;}

extern OBJ _AMySeqFun1_14(OBJ x1,OBJ x2) /* uniqueSort */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  r=__ASeq_6;
 }else{
  CPPRD(x2,1);
  {OBJ x9;
   x9=_ASeq_52(x2,__ANat_5);
   r=_AMySeqFun1_34(x1,x2,x9);}}
 return r;}

extern OBJ _AMySeqFun1_15(OBJ x1,OBJ x2,OBJ x3) /* cmp */
{OBJ r;
 r=_AMySeqFun1_38(x1,x2,x3,__AMySeqFun1_8);
 return r;}

extern OBJ _AMySeqFun1_16(register OBJ x1,register OBJ x2,register OBJ x3) /* - */
{OBJ r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   r=x2;
  }else{
   {OBJ x35=FLD1(x3,1);OBJ x36=FLD1(x3,2);
    if(EXPRD(x3,1)){
     DSPRDF(x3);
    }else{
     COPY(x35,1);COPY(x36,1);
     FRPRD(x3,1);}
    CPCLS(x1,1);
    CPCLS(__AMySeqFun1_40,1);
    {OBJ x38;TUP2 x40;
     x38=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AMySeqFun1_40,2))(__AMySeqFun1_40,x1,x35);
     x40=_ASeqFilter_8(x38,x2);
     if(ISPRM(x40.c2)){
      x2=x40.c1;x3=x36;continue;
     }else{
      {OBJ x43=FLD1(x40.c2,2);
       if(EXPRD(x40.c2,1)){
	FREE(FLD1(x40.c2,1),1);DSPRDF(x40.c2);
       }else{
	COPY(x43,1);
	FRPRD(x40.c2,1);}
       {OBJ x44;
	x44=_ASeq_26(x40.c1,x43);
	x2=x44;x3=x36;continue;}}}}}}
  break;}
 return r;}

extern OBJ _AMySeqFun1_17(OBJ x1) /* combine */
{OBJ r;
 if(ISPRM(x1)){
  COPY(__AMySeqFun1_41,1);
  r=__AMySeqFun1_41;
 }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);}
   CPPRD(__ASeq_2,1);
   {OBJ x23;
    x23=_AMySeqFun1_17(x21);
    r=_AMySeqFun3_8(__ASeq_2,x20,x23);}}}
 return r;}

extern OBJ _AMySeqFun1_18(OBJ x1,OBJ x2,OBJ x3) /* insert */
{OBJ r;
 CPCLS(__ABUILTIN_7,1);
 CPCLS(__ACompose_4,1);
 {OBJ x4;TUP2 x6;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__ABUILTIN_7,x1);
  x6=_ASeqFilter_8(x4,x3);
  if(ISPRM(x6.c2)){
   r=x6.c1;
   FRCLS(x2,1);
  }else{
   {OBJ x16=FLD1(x6.c2,1);
    COPY(x16,1);
    {OBJ x18;OBJ x19;
     x18=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x16);
     x19=_ASeq_26(x18,x6.c2);
     r=_ASeq_26(x6.c1,x19);}}}}
 return r;}

extern OBJ _AMySeqFun1_19(OBJ x1,OBJ x2) /* pos */
{OBJ r;
 if(ISPRM(x2)){
  HLT("MySeqFun1 at <unknown> : missing else in pos\'MySeqFun1:(a->bool)**seq->nat");
 }else{
  {OBJ x19=FLD1(x2,1);OBJ x20=FLD1(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x19,1);COPY(x20,1);
    FRPRD(x2,1);}
   CPCLS(x1,1);
   {OBJ x22;
    x22=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x19);
    if(ISTGPRM(x22,1)){
     FRCLS(x1,1);
     FREE(x20,1);
     r=__ANat_5;
    }else{
     {OBJ x23;
      x23=_AMySeqFun1_19(x1,x20);
      ANat_2(x23,r);}}}}}
 return r;}

extern OBJ _AMySeqFun1_20(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4) /* union */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   FRCLS(x2,1);
   if(ISPRM(x4)){
    *p1=__ASeq_6;
   }else{
    *p1=x4;}
  }else{
   {OBJ x93=FLD1(x3,1);OBJ x94=FLD1(x3,2);
    COPY(x93,1);COPY(x94,1);
    if(ISPRM(x4)){
     FRCLS(x1,1);
     FRCLS(x2,1);
     FREE(x93,1);
     FREE(x94,1);
     *p1=x3;
    }else{
     if(EXPRD(x3,1)){
      DSPRD(x3);
     }else{
      DCPRD(x3,1);}
     CPCLS(x2,1);
     CPPRD(x4,1);
     COPY(x93,1);
     CPCLS(__AMySeqFun1_43,1);
     {OBJ x98;TUP2 x100;
      x98=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AMySeqFun1_43,2))(__AMySeqFun1_43,x2,x93);
      x100=_ASeqFilter_8(x98,x4);
      if(ISPRM(x100.c2)){
       FREE(x100.c1,1);
       {
	PRD1(2,*p1);FLD1(*p1,1)=x93;
	x3=x94;p1=&FLD1(*p1,2);continue;}
      }else{
       {OBJ x103=FLD1(x100.c2,1);OBJ x104=FLD1(x100.c2,2);
	if(EXPRD(x100.c2,1)){
	 if(EXPRD(x4,1)){
	  DSPRD(x4);
	 }else{
	  DCPRD(x4,1);}
	 CPCLS(x1,1);
	 {OBJ x106;OBJ x107;
	  x106=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x93,x103);
	  x107=_ASeq_26(x100.c1,x104);
	  RSOME(x100.c2,*p1);FLD1(*p1,1)=x106;
	  x3=x94;x4=x107;p1=&FLD1(*p1,2);continue;}
	}else{
	 COPY(x103,1);COPY(x104,1);
	 if(EXPRD(x4,1)){
	  DSPRD(x4);
	 }else{
	  DCPRD(x4,1);}
	 CPCLS(x1,1);
	 {OBJ x106;OBJ x107;
	  x106=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x93,x103);
	  x107=_ASeq_26(x100.c1,x104);
	  FRPRD(x100.c2,1);PRD1(2,*p1);FLD1(*p1,1)=x106;
	  x3=x94;x4=x107;p1=&FLD1(*p1,2);continue;}}}}}}}}
  break;}
 return r;}

extern TUP2 _AMySeqFun1_32(register OBJ x1,register OBJ x2,register OBJ x3) /* | */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   *p1=__ASeq_6;*p2=x2;
  }else{
   {OBJ x77=FLD1(x3,1);OBJ x78=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
     COPY(x77,1);
    }else{
     COPY(x77,2);COPY(x78,1);}
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x79;
     x79=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x77);
     switch(TGPRM(x79)){
      case 1:
       if(x_x3){
	DSPRDF(x3);
       }else{
	FRPRD(x3,1);}
       FREE(x2,1);
       x2=x77;x3=x78;continue;break;
      case 3:
       {
	if(x_x3){
	 RSOME(x3,*p1);
	}else{
	 FRPRD(x3,1);PRD1(2,*p1);FLD1(*p1,1)=x77;}
	x3=x78;p1=&FLD1(*p1,2);continue;}break;
      default: 
       if(x_x3){
	DSPRDF(x3);
       }else{
	FRPRD(x3,1);}
       FREE(x77,1);
       x3=x78;continue;}}}}
  break;}
 return r;}
extern OBJ _AMySeqFun1_32_c(OBJ x1,OBJ x2,OBJ x3) /* | */
{OBJ r;
 {TUP2 t=_AMySeqFun1_32(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AMySeqFun1_34(OBJ x1,OBJ x2,OBJ x3) /* uniqueSort,1 */
{OBJ r;
 {OBJ x4;
  ANat_6(x3,x4);
  if(ISTGPRM(x4,1)){
   FRCLS(x1,1);
   r=x2;
  }else{
   {OBJ x5;
    ANat_3(x3,x5);
    if(ISTGPRM(x5,1)){
     {OBJ x6;OBJ x7;
      ANat_4(x3,x6);
      ANat_6(x6,x7);
      if(ISTGPRM(x7,1)){
       FRCLS(x1,1);
       r=x2;
      }else{
       CPCLS(x1,2);
       {TUP4 x9;OBJ x14;OBJ x13;
	x9=_AMySeqFun1_35(x2,x3);
	x14=_AMySeqFun1_34(x1,x9.c3,x9.c4);
	x13=_AMySeqFun1_34(x1,x9.c1,x9.c2);
	r=_AMySeqFun1_36(x1,x13,x14);}}}
    }else{
     HLT("MySeqFun1 at <73,5-14> : missing else in uniqueSort\'MySeqFun1:(a**a->bool)->seq**nat->seq");}}}}
 return r;}

extern TUP4 _AMySeqFun1_35(OBJ x1,OBJ x2) /* halfs */
{TUP4 r;
 ANat_64(x2,__ANat_9,r.c2);
 ANat_62(x2,r.c2,r.c4);
 {TUP2 t=_ASeq_33(r.c2,x1);
  r.c1=t.c1;
  r.c3=t.c2;}
 return r;}
extern OBJ _AMySeqFun1_35_c(OBJ x1,OBJ x2) /* halfs */
{OBJ r;
 {TUP4 t=_AMySeqFun1_35(x1,x2);
  PRD1(4,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;}
 return r;}

extern OBJ _AMySeqFun1_36(register OBJ x1,register OBJ x2,register OBJ x3) /* merge */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    *p1=x2;
   }else{
    *p1=x3;}
  }else{
   {OBJ x74=FLD1(x2,1);OBJ x75=FLD1(x2,2);
    COPY(x74,1);COPY(x75,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x74,1);
     FREE(x75,1);
     *p1=x2;
    }else{
     {OBJ x76=FLD1(x3,1);OBJ x77=FLD1(x3,2);
      COPY(x76,2);COPY(x77,1);
      CPCLS(x1,1);
      COPY(x74,1);
      {OBJ x80;
       x80=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x74,x76);
       if(ISTGPRM(x80,1)){
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x76,1);
	FREE(x77,1);
	{
	 PRD1(2,*p1);FLD1(*p1,1)=x74;
	 x2=x75;p1=&FLD1(*p1,2);continue;}
       }else{
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	CPCLS(x1,1);
	COPY(x74,1);
	COPY(x76,1);
	{OBJ x82;
	 x82=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x76,x74);
	 if(ISTGPRM(x82,1)){
	  FREE(x74,1);
	  FREE(x75,1);
	  {
	   PRD1(2,*p1);FLD1(*p1,1)=x76;
	   x3=x77;p1=&FLD1(*p1,2);continue;}
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  FREE(x76,1);
	  {
	   PRD1(2,*p1);FLD1(*p1,1)=x74;
	   x2=x75;x3=x77;p1=&FLD1(*p1,2);continue;}}}}}}}}}
  break;}
 return r;}

extern OBJ _AMySeqFun1_38(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4) /* cmp,1 */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   FREE(x3,1);
   r=x4;
  }else{
   {OBJ x357=FLD1(x2,1);OBJ x358=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x357,1);COPY(x358,1);
     FRPRD(x2,1);}
    {OBJ x361;OBJ x362;
     if(ISPRM(x3)){
      HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
     }else{
      {OBJ x359=FLD1(x3,1);
       COPY(x359,1);
       x361=x359;
       CPCLS(x1,1);}}
     x362=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x357,x361);
     switch(TGPRM(x362)){
      case 1:
       switch(TGPRM(x4)){
	case 2:case 3:
	 {OBJ x374;
	  if(ISPRM(x3)){
	   HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	  }else{
	   {OBJ x373=FLD1(x3,2);
	    if(EXPRD(x3,1)){
	     x374=x373;
	     FREE(FLD1(x3,1),1);DSPRDF(x3);
	    }else{
	     COPY(x373,1);
	     x374=x373;
	     FRPRD(x3,1);}}}
	  x2=x358;x3=x374;x4=__AMySeqFun1_2;continue;}break;
	default: 
	 {OBJ x368;
	  if(ISPRM(x3)){
	   HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	  }else{
	   {OBJ x367=FLD1(x3,2);
	    if(EXPRD(x3,1)){
	     x368=x367;
	     FREE(FLD1(x3,1),1);DSPRDF(x3);
	    }else{
	     COPY(x367,1);
	     x368=x367;
	     FRPRD(x3,1);}}}
	  x2=x358;x3=x368;x4=x362;continue;}}break;
      case 2:
       switch(TGPRM(x4)){
	case 1:case 3:
	 {OBJ x386;
	  if(ISPRM(x3)){
	   HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	  }else{
	   {OBJ x385=FLD1(x3,2);
	    if(EXPRD(x3,1)){
	     x386=x385;
	     FREE(FLD1(x3,1),1);DSPRDF(x3);
	    }else{
	     COPY(x385,1);
	     x386=x385;
	     FRPRD(x3,1);}}}
	  x2=x358;x3=x386;x4=__AMySeqFun1_2;continue;}break;
	default: 
	 {OBJ x380;
	  if(ISPRM(x3)){
	   HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	  }else{
	   {OBJ x379=FLD1(x3,2);
	    if(EXPRD(x3,1)){
	     x380=x379;
	     FREE(FLD1(x3,1),1);DSPRDF(x3);
	    }else{
	     COPY(x379,1);
	     x380=x379;
	     FRPRD(x3,1);}}}
	  x2=x358;x3=x380;x4=x362;continue;}}break;
      case 3:
       {OBJ x392;
	if(ISPRM(x3)){
	 HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	}else{
	 {OBJ x391=FLD1(x3,2);
	  if(EXPRD(x3,1)){
	   x392=x391;
	   FREE(FLD1(x3,1),1);DSPRDF(x3);
	  }else{
	   COPY(x391,1);
	   x392=x391;
	   FRPRD(x3,1);}}}
	x2=x358;x3=x392;x4=x362;continue;}break;
      default: 
       {OBJ x365;
	if(ISPRM(x3)){
	 HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	}else{
	 {OBJ x364=FLD1(x3,2);
	  if(EXPRD(x3,1)){
	   x365=x364;
	   FREE(FLD1(x3,1),1);DSPRDF(x3);
	  }else{
	   COPY(x364,1);
	   x365=x364;
	   FRPRD(x3,1);}}}
	x2=x358;x3=x365;continue;}}}}}
  break;}
 return r;}

extern OBJ _AMySeqFun1_39(OBJ x1,OBJ x2,OBJ x3) /* ||'39 */
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x3);
 return r;}

extern OBJ _AMySeqFun1_40(OBJ x1,OBJ x2,OBJ x3) /* -'40 */
{OBJ r;
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x3);
  if(ISTGPRM(x4,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

extern OBJ _AMySeqFun1_42(OBJ x1,OBJ x2,OBJ x3) /* union'42 */
{OBJ r;
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x3,x2);
  if(ISTGPRM(x4,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

extern OBJ _AMySeqFun1_43(OBJ x1,OBJ x2,OBJ x3) /* union'43 */
{OBJ r;
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x3,x2);
  if(ISTGPRM(x4,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}






static OBJ _mt_4_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_4_2_2(OBJ t,OBJ t1,OBJ t2) 
{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,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1,t2);
 return r;}

init_AMySeqFun1()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_ASeq();
 init_AOption();
 init_ASeqFilter();
 init_ACompose();
 init_AMySeqFun3();
 init_ASeqMap();
 init_APair();
 init_ACom();
 init_AVoid();
 init_ASeqMapEnv();
 CLS(4,_AMySeqFun1_20,__AMySeqFun1_20);
 CLS(2,_AMySeqFun1_19,__AMySeqFun1_19);
 CLS(3,_AMySeqFun1_18,__AMySeqFun1_18);
 CLS(1,_AMySeqFun1_17,__AMySeqFun1_17);
 CLS(3,_AMySeqFun1_16,__AMySeqFun1_16);
 CLS(3,_AMySeqFun1_15,__AMySeqFun1_15);
 CLS(2,_AMySeqFun1_14,__AMySeqFun1_14);
 CLS(2,_AMySeqFun1_13,__AMySeqFun1_13);
 CLS(2,_AMySeqFun1_12,__AMySeqFun1_12);
 CLS(3,_AMySeqFun1_43,__AMySeqFun1_43);
 CLS(2,_AMySeqFun1_11_c,__AMySeqFun1_11);
 CLS(3,_AMySeqFun1_42,__AMySeqFun1_42);
 CLS(1,_AMySeqFun1_9,__AMySeqFun1_9);
 CLS(3,_AMySeqFun1_40,__AMySeqFun1_40);
 CLS(3,_AMySeqFun1_39,__AMySeqFun1_39);
 CLS(1,_AMySeqFun1_7,__AMySeqFun1_7);
 CLS(4,_AMySeqFun1_38,__AMySeqFun1_38);
 CLS(1,_AMySeqFun1_5,__AMySeqFun1_5);
 CLS(3,_AMySeqFun1_36,__AMySeqFun1_36);
 CLS(1,_AMySeqFun1_3,__AMySeqFun1_3);
 CLS(2,_AMySeqFun1_35_c,__AMySeqFun1_35);
 CLS(3,_AMySeqFun1_34,__AMySeqFun1_34);
 CLS(3,_AMySeqFun1_32_c,__AMySeqFun1_32);
 MTH(4,0,2,_mt_4_0_2);LZYMTH(4,0,2,_mt_4_0_2);
 MTH(4,2,2,_mt_4_2_2);LZYMTH(4,2,2,_mt_4_2_2);
 PRM(3,__AMySeqFun1_2);
 PRM(2,__AMySeqFun1_4);
 PRM(1,__AMySeqFun1_6);
 PRM(0,__AMySeqFun1_8);
 PRD1F(2,__AMySeqFun1_41);FLD1(__AMySeqFun1_41,1)=__ASeq_6;FLD1(__AMySeqFun1_41,2)=__ASeq_6;}

