

#include "BUILTIN.h"
extern OBJ __AFct_2;
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;

#include "Nat.h"
extern OBJ __ASeq_6;
extern OBJ _AMySeqFun3_6(OBJ,OBJ,OBJ);extern OBJ __AMySeqFun3_6;
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;
extern OBJ _AComCompose_3(OBJ,OBJ);extern OBJ __AComCompose_3;
extern TUP2 _AAbsyFun3_4(OBJ,OBJ,OBJ);OBJ __AAbsyFun3_4; /* \* */
extern OBJ _AAbsyFun3_5(OBJ,OBJ,OBJ);OBJ __AAbsyFun3_5; /* \*,1 */
extern OBJ _AAbsyFun3_8(OBJ);OBJ __AAbsyFun3_8; /* sorth */
extern OBJ _AAbsyFun3_9(OBJ,OBJ,OBJ);OBJ __AAbsyFun3_9; /* functh */
extern OBJ _AAbsyFun3_10(OBJ);OBJ __AAbsyFun3_10; /* carth */
extern TUP2 _AAbsyFun3_11(OBJ,OBJ,OBJ);OBJ __AAbsyFun3_11; /* \*'11 */
extern OBJ _AAbsyFun3_12(OBJ,OBJ,OBJ);OBJ __AAbsyFun3_12; /* \*,1'12 */
extern OBJ _AAbsyFun3_13(OBJ,OBJ);OBJ __AAbsyFun3_13; /* functh'13 */

extern TUP2 _AAbsyFun3_4(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=x2;*p2=__AFct_2;
  }else{
   switch(TGPRD(x3)){
    case 3:
     {OBJ x134;FLAG x_x3=EXPRD(x3,1);
      if(x_x3){
      }else{
       x134=FLD(x3,1);}
      FRCLS(x1,1);
      if(x_x3){
       RPRDF(x3,*p2);
      }else{
       FRPRD(x3,1);PRDF(1,3,*p2);FLD(*p2,1)=x134;}
      *p1=x2;}break;
    case 4:
     {OBJ x136;FLAG x_x3=EXPRD(x3,1);
      if(x_x3){
      }else{
       x136=FLD(x3,1);}
      FRCLS(x1,1);
      if(x_x3){
       RPRDF(x3,*p2);
      }else{
       FRPRD(x3,1);PRDF(1,4,*p2);FLD(*p2,1)=x136;}
      *p1=x2;}break;
    case 2:
     {OBJ x138=FLD(x3,1);OBJ x139=FLD(x3,2);
      if(EXPRD(x3,1)){
       CPCLS(x1,1);
       {TUP2 x141;
	x141=_AAbsyFun3_4(x1,x2,x138);
	RPRD(x3,*p2);FLD(*p2,1)=x141.c2;
	x2=x141.c1;x3=x139;p2=&FLD(*p2,2);continue;}
      }else{
       COPY(x138,1);COPY(x139,1);
       CPCLS(x1,1);
       {TUP2 x141;
	x141=_AAbsyFun3_4(x1,x2,x138);
	FRPRD(x3,1);PRD(2,2,*p2);FLD(*p2,1)=x141.c2;
	x2=x141.c1;x3=x139;p2=&FLD(*p2,2);continue;}}}break;
    case 0:
     {OBJ x147=FLD(x3,1);
      if(EXPRD(x3,1)){
       {OBJ x150;
	{OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x147);
	 *p1=FLD1(t,1);
	 x150=FLD1(t,2);
	 DSPRDF(t);}
	RPRD(x3,*p2);FLD(*p2,1)=x150;}
      }else{
       COPY(x147,1);
       {OBJ x150;
	{OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x147);
	 *p1=FLD1(t,1);
	 x150=FLD1(t,2);
	 DSPRDF(t);}
	FRPRD(x3,1);PRD(1,0,*p2);FLD(*p2,1)=x150;}}}break;
    default: 
     {OBJ x128=FLD(x3,1);
      if(EXPRD(x3,1)){
       CPCLS(__AAbsyFun3_11,1);
       {OBJ x129;
	x129=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAbsyFun3_11,1))(__AAbsyFun3_11,x1);
	RPRD(x3,*p2);
	{TUP2 t=_ASeqMapEnv_4(x129,x2,x128);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}
      }else{
       COPY(x128,1);
       CPCLS(__AAbsyFun3_11,1);
       {OBJ x129;
	x129=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAbsyFun3_11,1))(__AAbsyFun3_11,x1);
	FRPRD(x3,1);PRD(1,1,*p2);
	{TUP2 t=_ASeqMapEnv_4(x129,x2,x128);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}}}}}
  break;}
 return r;}
extern OBJ _AAbsyFun3_4_c(OBJ x1,OBJ x2,OBJ x3) /* \* */
{OBJ r;
 {TUP2 t=_AAbsyFun3_4(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AAbsyFun3_5(OBJ x1,OBJ x2,OBJ x3) /* \*,1 */
{OBJ r;
 if(ISPRM(x3)){
  FRCLS(x1,1);
  CPCLS(__ACom_47,1);
  {OBJ x117;OBJ x118;OBJ x119;
   PRD1(2,x117);FLD1(x117,1)=x2;FLD1(x117,2)=__AFct_2;
   PRD(1,0,x118);FLD(x118,1)=x117;
   x119=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x118);
   PRD(2,0,r);FLD(r,1)=x119;FLD(r,2)=__ASeq_6;}
 }else{
  switch(TGPRD(x3)){
   case 3:
    {OBJ x107;FLAG x_x3=EXPRD(x3,1);
     if(x_x3){
     }else{
      x107=FLD(x3,1);}
     FRCLS(x1,1);
     CPCLS(__ACom_47,1);
     {OBJ x108;OBJ x109;OBJ x110;OBJ x111;
      if(x_x3){
       RPRDF(x3,x108);
      }else{
       FRPRD(x3,1);PRDF(1,3,x108);FLD(x108,1)=x107;}
      PRD1(2,x109);FLD1(x109,1)=x2;FLD1(x109,2)=x108;
      PRD(1,0,x110);FLD(x110,1)=x109;
      x111=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x110);
      PRD(2,0,r);FLD(r,1)=x111;FLD(r,2)=__ASeq_6;}}break;
   case 4:
    {OBJ x112;FLAG x_x3=EXPRD(x3,1);
     if(x_x3){
     }else{
      x112=FLD(x3,1);}
     FRCLS(x1,1);
     CPCLS(__ACom_47,1);
     {OBJ x113;OBJ x114;OBJ x115;OBJ x116;
      if(x_x3){
       RPRDF(x3,x113);
      }else{
       FRPRD(x3,1);PRDF(1,4,x113);FLD(x113,1)=x112;}
      PRD1(2,x114);FLD1(x114,1)=x2;FLD1(x114,2)=x113;
      PRD(1,0,x115);FLD(x115,1)=x114;
      x116=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x115);
      PRD(2,0,r);FLD(r,1)=x116;FLD(r,2)=__ASeq_6;}}break;
   case 2:
    {OBJ x120=FLD(x3,1);OBJ x121=FLD(x3,2);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x120,1);COPY(x121,1);
      FRPRD(x3,1);}
     CPCLS(x1,1);
     CPCLS(__AAbsyFun3_9,1);
     {OBJ x123;OBJ x122;
      x123=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AAbsyFun3_9,2))(__AAbsyFun3_9,x1,x121);
      x122=_AAbsyFun3_5(x1,x2,x120);
      r=_AComCompose_3(x122,x123);}}break;
   case 0:
    {OBJ x124=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x124,1);
      FRPRD(x3,1);}
     CPCLS(__AAbsyFun3_8,1);
     {OBJ x125;
      x125=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x124);
      r=_AComCompose_3(x125,__AAbsyFun3_8);}}break;
   default: 
    {OBJ x104=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x104,1);
      FRPRD(x3,1);}
     CPCLS(__AAbsyFun3_10,1);
     CPCLS(__AAbsyFun3_12,1);
     {OBJ x105;OBJ x106;
      x105=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAbsyFun3_12,1))(__AAbsyFun3_12,x1);
      x106=_AMySeqFun3_6(x105,x2,x104);
      r=_AComCompose_3(x106,__AAbsyFun3_10);}}}}
 return r;}

extern OBJ _AAbsyFun3_8(OBJ x1) /* sorth */
{OBJ r;
 if(ISTGPRD(x1,0)){
  {OBJ x25=FLD(x1,1);FLAG x_x1=EXPRD(x1,1);
   if(x_x1){
   }else{
    CPPRD(x25,1);}
   {OBJ x26;OBJ x27=FLD1(x25,2);FLAG x_x25=EXPRD(x25,1);
    if(x_x25){
    }else{
     x26=FLD1(x25,1);COPY(x26,1);COPY(x27,1);}
    CPCLS(__ACom_47,1);
    {OBJ x28;OBJ x29;OBJ x30;OBJ x31;
     if(x_x1){
      RPRD(x1,x28);FLD(x28,1)=x27;
     }else{
      FRPRD(x1,1);PRD(1,0,x28);FLD(x28,1)=x27;}
     if(x_x25){
      RSOME(x25,x29);FLD1(x29,2)=x28;
     }else{
      FRPRD(x25,1);PRD1(2,x29);FLD1(x29,1)=x26;FLD1(x29,2)=x28;}
     PRD(1,0,x30);FLD(x30,1)=x29;
     x31=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x30);
     PRD(2,0,r);FLD(r,1)=x31;FLD(r,2)=__ASeq_6;}}}
 }else{
  HLT("AbsyFun3 at <55,9-13> : missing else in sorth\'AbsyFun3:ans->com");}
 return r;}

extern OBJ _AAbsyFun3_9(OBJ x1,OBJ x2,OBJ x3) /* functh */
{OBJ r;
 if(ISTGPRD(x3,0)){
  {OBJ x23=FLD(x3,1);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    CPPRD(x23,1);
    FRPRD(x3,1);}
   {OBJ x24=FLD1(x23,1);OBJ x25=FLD1(x23,2);
    if(EXPRD(x23,1)){
     DSPRDF(x23);
    }else{
     COPY(x24,1);COPY(x25,1);
     FRPRD(x23,1);}
    CPCLS(__AAbsyFun3_13,1);
    {OBJ x26;OBJ x27;
     x26=_AAbsyFun3_5(x1,x24,x2);
     x27=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAbsyFun3_13,1))(__AAbsyFun3_13,x25);
     r=_AComCompose_3(x26,x27);}}}
 }else{
  HLT("AbsyFun3 at <58,9-14> : missing else in functh\'AbsyFun3:(env**from->com)**fct->ans->com");}
 return r;}

extern OBJ _AAbsyFun3_10(OBJ x1) /* carth */
{OBJ r;
 if(ISTGPRD(x1,0)){
  {OBJ x25=FLD(x1,1);FLAG x_x1=EXPRD(x1,1);
   if(x_x1){
   }else{
    CPPRD(x25,1);}
   {OBJ x26;OBJ x27=FLD1(x25,2);FLAG x_x25=EXPRD(x25,1);
    if(x_x25){
    }else{
     x26=FLD1(x25,1);COPY(x26,1);COPY(x27,1);}
    CPCLS(__ACom_47,1);
    {OBJ x28;OBJ x29;OBJ x30;OBJ x31;
     if(x_x1){
      RPRD(x1,x28);CHGTG(x28,1);FLD(x28,1)=x27;
     }else{
      FRPRD(x1,1);PRD(1,1,x28);FLD(x28,1)=x27;}
     if(x_x25){
      RSOME(x25,x29);FLD1(x29,2)=x28;
     }else{
      FRPRD(x25,1);PRD1(2,x29);FLD1(x29,1)=x26;FLD1(x29,2)=x28;}
     PRD(1,0,x30);FLD(x30,1)=x29;
     x31=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x30);
     PRD(2,0,r);FLD(r,1)=x31;FLD(r,2)=__ASeq_6;}}}
 }else{
  HLT("AbsyFun3 at <63,9-13> : missing else in carth\'AbsyFun3:ans->com");}
 return r;}

extern TUP2 _AAbsyFun3_11(OBJ x1,OBJ x2,OBJ x3) /* \*'11 */
{TUP2 r;
 r=_AAbsyFun3_4(x1,x2,x3);
 return r;}
extern OBJ _AAbsyFun3_11_c(OBJ x1,OBJ x2,OBJ x3) /* \*'11 */
{OBJ r;
 {TUP2 t=_AAbsyFun3_11(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AAbsyFun3_12(OBJ x1,OBJ x2,OBJ x3) /* \*,1'12 */
{OBJ r;
 r=_AAbsyFun3_5(x1,x2,x3);
 return r;}

extern OBJ _AAbsyFun3_13(OBJ x1,OBJ x2) /* functh'13 */
{OBJ r;
 {OBJ x6;
  if(ISTGPRD(x2,0)){
   {OBJ x3=FLD(x2,1);
    if(EXPRD(x2,1)){
     x6=x3;
     DSPRDF(x2);
    }else{
     CPPRD(x3,1);
     x6=x3;
     FRPRD(x2,1);}}
  }else{
   HLT("Com at <unknown> : undefined selection data\'Com:ans->data");}
  {OBJ x17;OBJ x18=FLD1(x6,2);FLAG x_x6=EXPRD(x6,1);
   if(x_x6){
   }else{
    x17=FLD1(x6,1);COPY(x17,1);COPY(x18,1);}
   CPCLS(__ACom_47,1);
   {OBJ x19;OBJ x20;OBJ x21;OBJ x22;
    PRD(2,2,x19);FLD(x19,1)=x1;FLD(x19,2)=x18;
    if(x_x6){
     RSOME(x6,x20);FLD1(x20,2)=x19;
    }else{
     FRPRD(x6,1);PRD1(2,x20);FLD1(x20,1)=x17;FLD1(x20,2)=x19;}
    PRD(1,0,x21);FLD(x21,1)=x20;
    x22=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x21);
    PRD(2,0,r);FLD(r,1)=x22;FLD(r,2)=__ASeq_6;}}}
 return r;}

init_AAbsyFun3()
{
 static int visited=0; if(visited) return; visited=1;
 init_AFct();
 init_APair();
 init_ACom();
 init_ANat();
 init_AVoid();
 init_ASeq();
 init_AOption();
 init_ASeqMap();
 init_AMySeqFun3();
 init_ASeqMapEnv();
 init_AComCompose();
 CLS(2,_AAbsyFun3_13,__AAbsyFun3_13);
 CLS(3,_AAbsyFun3_12,__AAbsyFun3_12);
 CLS(3,_AAbsyFun3_11_c,__AAbsyFun3_11);
 CLS(1,_AAbsyFun3_10,__AAbsyFun3_10);
 CLS(3,_AAbsyFun3_9,__AAbsyFun3_9);
 CLS(1,_AAbsyFun3_8,__AAbsyFun3_8);
 CLS(3,_AAbsyFun3_5,__AAbsyFun3_5);
 CLS(3,_AAbsyFun3_4_c,__AAbsyFun3_4);}

