

#include "BUILTIN.h"
extern OBJ __ARelCmp_2;
extern OBJ __ARelCmp_4;
extern OBJ __ARelCmp_6;

#include "Nat.h"
extern OBJ _ASeqCompare_2(OBJ,OBJ,OBJ);OBJ __ASeqCompare_2; /* cmp */
extern OBJ _ASeqCompare_3(OBJ,OBJ,OBJ);OBJ __ASeqCompare_3; /* eq? */

extern OBJ _ASeqCompare_2(register OBJ x1,register OBJ x2,register OBJ x3) /* cmp */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    COPY(__ARelCmp_4,1);
    r=__ARelCmp_4;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    COPY(__ARelCmp_6,1);
    r=__ARelCmp_6;}
  }else{
   {OBJ x29=FLD1(x2,1);OBJ x30=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x29,1);COPY(x30,1);
     FRPRD(x2,1);}
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x29,1);
     FREE(x30,1);
     COPY(__ARelCmp_2,1);
     r=__ARelCmp_2;
    }else{
     {OBJ x42=FLD1(x3,1);OBJ x43=FLD1(x3,2);
      if(EXPRD(x3,1)){
       COPY(x42,1);
       DSPRDF(x3);
      }else{
       COPY(x42,2);COPY(x43,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x29,1);
      {OBJ x44;
       x44=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x29,x42);
       if(ISTGPRM(x44,1)){
	FRCLS(x1,1);
	FREE(x29,1);
	FREE(x30,1);
	FREE(x42,1);
	FREE(x43,1);
	COPY(__ARelCmp_6,1);
	r=__ARelCmp_6;
       }else{
	CPCLS(x1,1);
	{OBJ x45;
	 x45=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x42,x29);
	 if(ISTGPRM(x45,1)){
	  FRCLS(x1,1);
	  FREE(x30,1);
	  FREE(x43,1);
	  COPY(__ARelCmp_2,1);
	  r=__ARelCmp_2;
	 }else{
	  x2=x30;x3=x43;continue;}}}}}}}}
  break;}
 return r;}

extern OBJ _ASeqCompare_3(register OBJ x1,register OBJ x2,register OBJ x3) /* eq? */
{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 x26=FLD1(x2,1);OBJ x27=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x26,1);COPY(x27,1);
     FRPRD(x2,1);}
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x26,1);
     FREE(x27,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x38=FLD1(x3,1);OBJ x39=FLD1(x3,2);
      if(EXPRD(x3,1)){
       DSPRDF(x3);
      }else{
       COPY(x38,1);COPY(x39,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      {OBJ x40;
       x40=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x26,x38);
       if(ISTGPRM(x40,1)){
	x2=x27;x3=x39;continue;
       }else{
	FRCLS(x1,1);
	FREE(x27,1);
	FREE(x39,1);
	r=__ABUILTIN_3;}}}}}}
  break;}
 return r;}

init_ASeqCompare()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeq();
 init_ARelCmp();
 init_ANat();
 init_AOption();
 CLS(3,_ASeqCompare_3,__ASeqCompare_3);
 CLS(3,_ASeqCompare_2,__ASeqCompare_2);}

