

#include "BUILTIN.h"
extern OBJ __ATypeAn_52;
extern OBJ __ASourceAn_28;
extern OBJ __AOptimAn_24;
extern OBJ __ATransAn_8;
extern OBJ __APragmaAn_34;

#include "Nat.h"

#include "Char.h"

#include "Int.h"

#include "Array.h"
OBJ __AAn_2; /* none */
extern OBJ _AAn_3(OBJ,OBJ);OBJ __AAn_3; /* set */
extern OBJ _AAn_4(OBJ);OBJ __AAn_4; /* type */
extern OBJ _AAn_5(OBJ,OBJ);OBJ __AAn_5; /* set,1 */
extern OBJ _AAn_6(OBJ);OBJ __AAn_6; /* source */
extern OBJ _AAn_7(OBJ,OBJ);OBJ __AAn_7; /* set,2 */
extern OBJ _AAn_8(OBJ);OBJ __AAn_8; /* optim */
extern OBJ _AAn_9(OBJ,OBJ);OBJ __AAn_9; /* set,3 */
extern OBJ _AAn_10(OBJ);OBJ __AAn_10; /* trans */
extern OBJ _AAn_11(OBJ,OBJ);OBJ __AAn_11; /* set,4 */
extern OBJ _AAn_12(OBJ);OBJ __AAn_12; /* pragma */
extern OBJ _AAn_13(OBJ,OBJ);OBJ __AAn_13; /* <+ */
extern OBJ _AAn_14(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AAn_14; /* all */
extern OBJ _AAn_15(OBJ);OBJ __AAn_15; /* all? */
extern OBJ _AAn_16(OBJ);OBJ __AAn_16; /* pragmaOf */
extern OBJ _AAn_17(OBJ);OBJ __AAn_17; /* transOf */
extern OBJ _AAn_18(OBJ);OBJ __AAn_18; /* optimOf */
extern OBJ _AAn_19(OBJ);OBJ __AAn_19; /* sourceOf */
extern OBJ _AAn_20(OBJ);OBJ __AAn_20; /* typeOf */
extern OBJ _AAn_22(OBJ);OBJ __AAn_22; /* none? */

extern OBJ _AAn_3(OBJ x1,OBJ x2) /* set */
{OBJ r;
 if(ISPRM(x1)){
  PRD1(5,r);FLD1(r,1)=x2;FLD1(r,2)=__ASourceAn_28;FLD1(r,3)=__AOptimAn_24;FLD1(r,4)=__ATransAn_8;FLD1(r,5)=__APragmaAn_34;
 }else{
  {OBJ x51;OBJ x52;OBJ x53;OBJ x54;
   if(EXPRD(x1,1)){
    RSOME(x1,r);FREE(FLD1(r,1),1);FLD1(r,1)=x2;
   }else{
    x51=FLD1(x1,2);x52=FLD1(x1,3);x53=FLD1(x1,4);x54=FLD1(x1,5);COPY(x51,1);COPY(x52,1);COPY(x53,1);COPY(x54,1);
    FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x2;FLD1(r,2)=x51;FLD1(r,3)=x52;FLD1(r,4)=x53;FLD1(r,5)=x54;}}}
 return r;}

extern OBJ _AAn_4(OBJ x1) /* type */
{OBJ r;
 if(ISPRM(x1)){
  r=__ATypeAn_52;
 }else{
  {OBJ x19=FLD1(x1,1);
   if(EXPRD(x1,1)){
    r=x19;
    FLD1(x1,1)=NIL;DSPRD(x1);
   }else{
    COPY(x19,1);
    r=x19;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_5(OBJ x1,OBJ x2) /* set,1 */
{OBJ r;
 if(ISPRM(x1)){
  PRD1(5,r);FLD1(r,1)=__ATypeAn_52;FLD1(r,2)=x2;FLD1(r,3)=__AOptimAn_24;FLD1(r,4)=__ATransAn_8;FLD1(r,5)=__APragmaAn_34;
 }else{
  {OBJ x50;OBJ x52;OBJ x53;OBJ x54;
   if(EXPRD(x1,1)){
    RSOME(x1,r);FREE(FLD1(r,2),1);FLD1(r,2)=x2;
   }else{
    x50=FLD1(x1,1);x52=FLD1(x1,3);x53=FLD1(x1,4);x54=FLD1(x1,5);COPY(x50,1);COPY(x52,1);COPY(x53,1);COPY(x54,1);
    FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x50;FLD1(r,2)=x2;FLD1(r,3)=x52;FLD1(r,4)=x53;FLD1(r,5)=x54;}}}
 return r;}

extern OBJ _AAn_6(OBJ x1) /* source */
{OBJ r;
 if(ISPRM(x1)){
  r=__ASourceAn_28;
 }else{
  {OBJ x20=FLD1(x1,2);
   if(EXPRD(x1,1)){
    r=x20;
    FLD1(x1,2)=NIL;DSPRD(x1);
   }else{
    COPY(x20,1);
    r=x20;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_7(OBJ x1,OBJ x2) /* set,2 */
{OBJ r;
 if(ISPRM(x1)){
  PRD1(5,r);FLD1(r,1)=__ATypeAn_52;FLD1(r,2)=__ASourceAn_28;FLD1(r,3)=x2;FLD1(r,4)=__ATransAn_8;FLD1(r,5)=__APragmaAn_34;
 }else{
  {OBJ x50;OBJ x51;OBJ x53;OBJ x54;
   if(EXPRD(x1,1)){
    RSOME(x1,r);FREE(FLD1(r,3),1);FLD1(r,3)=x2;
   }else{
    x50=FLD1(x1,1);x51=FLD1(x1,2);x53=FLD1(x1,4);x54=FLD1(x1,5);COPY(x50,1);COPY(x51,1);COPY(x53,1);COPY(x54,1);
    FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x50;FLD1(r,2)=x51;FLD1(r,3)=x2;FLD1(r,4)=x53;FLD1(r,5)=x54;}}}
 return r;}

extern OBJ _AAn_8(OBJ x1) /* optim */
{OBJ r;
 if(ISPRM(x1)){
  r=__AOptimAn_24;
 }else{
  {OBJ x21=FLD1(x1,3);
   if(EXPRD(x1,1)){
    r=x21;
    FLD1(x1,3)=NIL;DSPRD(x1);
   }else{
    COPY(x21,1);
    r=x21;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_9(OBJ x1,OBJ x2) /* set,3 */
{OBJ r;
 if(ISPRM(x1)){
  PRD1(5,r);FLD1(r,1)=__ATypeAn_52;FLD1(r,2)=__ASourceAn_28;FLD1(r,3)=__AOptimAn_24;FLD1(r,4)=x2;FLD1(r,5)=__APragmaAn_34;
 }else{
  {OBJ x50;OBJ x51;OBJ x52;OBJ x54;
   if(EXPRD(x1,1)){
    RSOME(x1,r);FREE(FLD1(r,4),1);FLD1(r,4)=x2;
   }else{
    x50=FLD1(x1,1);x51=FLD1(x1,2);x52=FLD1(x1,3);x54=FLD1(x1,5);COPY(x50,1);COPY(x51,1);COPY(x52,1);COPY(x54,1);
    FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x50;FLD1(r,2)=x51;FLD1(r,3)=x52;FLD1(r,4)=x2;FLD1(r,5)=x54;}}}
 return r;}

extern OBJ _AAn_10(OBJ x1) /* trans */
{OBJ r;
 if(ISPRM(x1)){
  r=__ATransAn_8;
 }else{
  {OBJ x22=FLD1(x1,4);
   if(EXPRD(x1,1)){
    r=x22;
    FLD1(x1,4)=NIL;DSPRD(x1);
   }else{
    COPY(x22,1);
    r=x22;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_11(OBJ x1,OBJ x2) /* set,4 */
{OBJ r;
 if(ISPRM(x1)){
  PRD1(5,r);FLD1(r,1)=__ATypeAn_52;FLD1(r,2)=__ASourceAn_28;FLD1(r,3)=__AOptimAn_24;FLD1(r,4)=__ATransAn_8;FLD1(r,5)=x2;
 }else{
  {OBJ x50;OBJ x51;OBJ x52;OBJ x53;
   if(EXPRD(x1,1)){
    RSOME(x1,r);FREE(FLD1(r,5),1);FLD1(r,5)=x2;
   }else{
    x50=FLD1(x1,1);x51=FLD1(x1,2);x52=FLD1(x1,3);x53=FLD1(x1,4);COPY(x50,1);COPY(x51,1);COPY(x52,1);COPY(x53,1);
    FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x50;FLD1(r,2)=x51;FLD1(r,3)=x52;FLD1(r,4)=x53;FLD1(r,5)=x2;}}}
 return r;}

extern OBJ _AAn_12(OBJ x1) /* pragma */
{OBJ r;
 if(ISPRM(x1)){
  r=__APragmaAn_34;
 }else{
  {OBJ x23=FLD1(x1,5);
   if(EXPRD(x1,1)){
    r=x23;
    FLD1(x1,5)=NIL;DSPRD(x1);
   }else{
    COPY(x23,1);
    r=x23;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_13(OBJ x1,OBJ x2) /* <+ */
{OBJ r;
 {OBJ x32;OBJ x26;OBJ x20;OBJ x14;OBJ x8;OBJ x38;OBJ x36;OBJ x35;OBJ x34;OBJ x33;OBJ x39;OBJ x40;OBJ x41;OBJ x42;
  if(ISPRM(x2)){
   x32=__APragmaAn_34;x26=__AOptimAn_24;x20=__ATransAn_8;x14=__ASourceAn_28;x8=__ATypeAn_52;
  }else{
   {OBJ x48=FLD1(x2,1);OBJ x49=FLD1(x2,2);OBJ x50=FLD1(x2,3);OBJ x51=FLD1(x2,4);OBJ x52=FLD1(x2,5);
    if(EXPRD(x2,1)){
     x8=x48;x14=x49;x26=x50;x20=x51;x32=x52;
     DSPRDF(x2);
    }else{
     COPY(x48,1);COPY(x49,1);COPY(x50,1);COPY(x51,1);COPY(x52,1);
     x8=x48;x14=x49;x26=x50;x20=x51;x32=x52;
     FRPRD(x2,1);}}}
  if(ISPRM(x32)){
   x38=__ABUILTIN_5;
  }else{
   x38=__ABUILTIN_3;}
  if(ISPRM(x26)){
   x36=__ABUILTIN_5;
  }else{
   x36=__ABUILTIN_3;}
  if(ISPRM(x20)){
   x35=__ABUILTIN_5;
  }else{
   x35=__ABUILTIN_3;}
  if(ISPRM(x14)){
   x34=__ABUILTIN_5;
  }else{
   x34=__ABUILTIN_3;}
  if(ISPRM(x8)){
   x33=__ABUILTIN_5;
  }else{
   x33=__ABUILTIN_3;}
  if(ISTGPRM(x33,1)){
   FREE(x8,1);
   x39=x1;
  }else{
   x39=_AAn_3(x1,x8);}
  if(ISTGPRM(x34,1)){
   x40=x39;
   FREE(x14,1);
  }else{
   x40=_AAn_5(x39,x14);}
  if(ISTGPRM(x35,1)){
   x41=x40;
   FREE(x20,1);
  }else{
   x41=_AAn_9(x40,x20);}
  if(ISTGPRM(x36,1)){
   x42=x41;
   FREE(x26,1);
  }else{
   x42=_AAn_7(x41,x26);}
  if(ISTGPRM(x38,1)){
   r=x42;
   FREE(x32,1);
  }else{
   r=_AAn_11(x42,x32);}}
 return r;}

extern OBJ _AAn_14(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* all */
{OBJ r;
 PRD1(5,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;FLD1(r,5)=x5;
 return r;}

extern OBJ _AAn_15(OBJ x1) /* all? */
{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 _AAn_16(OBJ x1) /* pragmaOf */
{OBJ r;
 if(ISPRM(x1)){
  HLT("An at <19,31-38> : undefined selection pragmaOf\'An:an->pragmaAn");
 }else{
  {OBJ x6=FLD1(x1,5);
   if(EXPRD(x1,1)){
    r=x6;
    FLD1(x1,5)=NIL;DSPRD(x1);
   }else{
    COPY(x6,1);
    r=x6;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_17(OBJ x1) /* transOf */
{OBJ r;
 if(ISPRM(x1)){
  HLT("An at <19,15-21> : undefined selection transOf\'An:an->transAn");
 }else{
  {OBJ x5=FLD1(x1,4);
   if(EXPRD(x1,1)){
    r=x5;
    FLD1(x1,4)=NIL;DSPRD(x1);
   }else{
    COPY(x5,1);
    r=x5;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_18(OBJ x1) /* optimOf */
{OBJ r;
 if(ISPRM(x1)){
  HLT("An at <18,47-53> : undefined selection optimOf\'An:an->optimAn");
 }else{
  {OBJ x4=FLD1(x1,3);
   if(EXPRD(x1,1)){
    r=x4;
    FLD1(x1,3)=NIL;DSPRD(x1);
   }else{
    COPY(x4,1);
    r=x4;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_19(OBJ x1) /* sourceOf */
{OBJ r;
 if(ISPRM(x1)){
  HLT("An at <18,29-36> : undefined selection sourceOf\'An:an->sourceAn");
 }else{
  {OBJ x3=FLD1(x1,2);
   if(EXPRD(x1,1)){
    r=x3;
    FLD1(x1,2)=NIL;DSPRD(x1);
   }else{
    COPY(x3,1);
    r=x3;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_20(OBJ x1) /* typeOf */
{OBJ r;
 if(ISPRM(x1)){
  HLT("An at <18,15-20> : undefined selection typeOf\'An:an->typeAn");
 }else{
  {OBJ x2=FLD1(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    FLD1(x1,1)=NIL;DSPRD(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AAn_22(OBJ x1) /* none? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_3;}
 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;}

init_AAn()
{
 static int visited=0; if(visited) return; visited=1;
 init_ATypeAn();
 init_ASourceAn();
 init_AOptimAn();
 init_ATransAn();
 init_APragmaAn();
 init_ANat();
 init_AIde();
 init_ASeq();
 init_AOption();
 init_ANatMap();
 init_AStore();
 init_AFormat();
 init_AString();
 init_ACom();
 init_AStream();
 init_AVoid();
 init_AFmt();
 init_AChar();
 init_AFile();
 init_AInt();
 init_ASet();
 init_APair();
 init_AIdeMap();
 init_AArray();
 init_AMap();
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 CLS(1,_AAn_22,__AAn_22);
 CLS(1,_AAn_20,__AAn_20);
 CLS(1,_AAn_19,__AAn_19);
 CLS(1,_AAn_18,__AAn_18);
 CLS(1,_AAn_17,__AAn_17);
 CLS(1,_AAn_16,__AAn_16);
 CLS(1,_AAn_15,__AAn_15);
 CLS(5,_AAn_14,__AAn_14);
 CLS(2,_AAn_13,__AAn_13);
 CLS(1,_AAn_12,__AAn_12);
 CLS(2,_AAn_11,__AAn_11);
 CLS(1,_AAn_10,__AAn_10);
 CLS(2,_AAn_9,__AAn_9);
 CLS(1,_AAn_8,__AAn_8);
 CLS(2,_AAn_7,__AAn_7);
 CLS(1,_AAn_6,__AAn_6);
 CLS(2,_AAn_5,__AAn_5);
 CLS(1,_AAn_4,__AAn_4);
 CLS(2,_AAn_3,__AAn_3);
 MTH(5,0,5,_mt_5_0_5);LZYMTH(5,0,5,_mt_5_0_5);
 PRM1(__AAn_2);}

