

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _ATreeMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ATreeMapEnv_4;
extern TUP2 _ATreeMapEnv_5(OBJ,OBJ,OBJ);extern OBJ __ATreeMapEnv_5;
extern TUP2 _ATreeMapEnv_6(OBJ,OBJ,OBJ);extern OBJ __ATreeMapEnv_6;
extern TUP2 _ATreeMapEnv_7(OBJ,OBJ,OBJ);extern OBJ __ATreeMapEnv_7;
extern TUP2 _ATreeMapEnv_8(OBJ,OBJ,OBJ);extern OBJ __ATreeMapEnv_8;
extern OBJ _ABSTreeConv_11(OBJ,OBJ);extern OBJ __ABSTreeConv_11;

#include "Char.h"
extern OBJ _ABSTreeMapEnv_6(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_6; /* *_V */
extern TUP2 _ABSTreeMapEnv_7(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_7; /* *_^ */
extern TUP2 _ABSTreeMapEnv_8(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_8; /* *_pre */
extern TUP2 _ABSTreeMapEnv_9(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_9; /* *_in */
extern TUP2 _ABSTreeMapEnv_10(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_10; /* *_post */
extern TUP3 _ABSTreeMapEnv_11(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_11; /* ` */
extern TUP2 _ABSTreeMapEnv_12(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_12; /* `,1 */
extern TUP2 _ABSTreeMapEnv_13(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABSTreeMapEnv_13; /* `,2 */

extern OBJ _ABSTreeMapEnv_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_V */
{OBJ r;
 CPCLS(__ABSTreeMapEnv_11,1);
 CPCLS(x2,1);
 {OBJ x6;OBJ x7;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ABSTreeMapEnv_11,3))(__ABSTreeMapEnv_11,x1,x2,x3);
  x7=_ATreeMapEnv_4(x6,x4,x5);
  r=_ABSTreeConv_11(x2,x7);}
 return r;}

extern TUP2 _ABSTreeMapEnv_7(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_^ */
{TUP2 r;
 CPCLS(__ABSTreeMapEnv_12,1);
 CPCLS(x2,1);
 {OBJ x6;TUP2 x9;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ABSTreeMapEnv_12,3))(__ABSTreeMapEnv_12,x1,x2,x3);
  x9=_ATreeMapEnv_5(x6,x4,x5);r.c1=x9.c1;
  r.c2=_ABSTreeConv_11(x2,x9.c2);}
 return r;}
extern OBJ _ABSTreeMapEnv_7_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_^ */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_7(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ABSTreeMapEnv_8(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_pre */
{TUP2 r;
 CPCLS(__ABSTreeMapEnv_13,1);
 CPCLS(x2,1);
 {OBJ x6;TUP2 x9;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ABSTreeMapEnv_13,3))(__ABSTreeMapEnv_13,x1,x2,x3);
  x9=_ATreeMapEnv_6(x6,x4,x5);r.c1=x9.c1;
  r.c2=_ABSTreeConv_11(x2,x9.c2);}
 return r;}
extern OBJ _ABSTreeMapEnv_8_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_pre */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_8(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ABSTreeMapEnv_9(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_in */
{TUP2 r;
 CPCLS(__ABSTreeMapEnv_13,1);
 CPCLS(x2,1);
 {OBJ x6;TUP2 x9;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ABSTreeMapEnv_13,3))(__ABSTreeMapEnv_13,x1,x2,x3);
  x9=_ATreeMapEnv_7(x6,x4,x5);r.c1=x9.c1;
  r.c2=_ABSTreeConv_11(x2,x9.c2);}
 return r;}
extern OBJ _ABSTreeMapEnv_9_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_in */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_9(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ABSTreeMapEnv_10(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_post */
{TUP2 r;
 CPCLS(__ABSTreeMapEnv_13,1);
 CPCLS(x2,1);
 {OBJ x6;TUP2 x9;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ABSTreeMapEnv_13,3))(__ABSTreeMapEnv_13,x1,x2,x3);
  x9=_ATreeMapEnv_8(x6,x4,x5);r.c1=x9.c1;
  r.c2=_ABSTreeConv_11(x2,x9.c2);}
 return r;}
extern OBJ _ABSTreeMapEnv_10_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* *_post */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_10(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP3 _ABSTreeMapEnv_11(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* ` */
{TUP3 r;
 FRCLS(x1,1);
 FRCLS(x2,1);
 {OBJ x12=FLD1(x5,1);
  if(EXPRD(x5,1)){
   DSPRDF(x5);
  }else{
   COPY(x12,1);
   FRPRD(x5,1);}
  {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x3,2))(x3,x4,x12);
   r.c1=FLD1(t,1);
   r.c2=FLD1(t,2);
   r.c3=FLD1(t,3);
   DSPRDF(t);}}
 return r;}
extern OBJ _ABSTreeMapEnv_11_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* ` */
{OBJ r;
 {TUP3 t=_ABSTreeMapEnv_11(x1,x2,x3,x4,x5);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern TUP2 _ABSTreeMapEnv_12(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* `,1 */
{TUP2 r;
 FRCLS(x1,1);
 FRCLS(x2,1);
 {OBJ x13=FLD1(x6,1);
  if(EXPRD(x6,1)){
   DSPRDF(x6);
  }else{
   COPY(x13,1);
   FRPRD(x6,1);}
  {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(x3,3))(x3,x4,x5,x13);
   r.c1=FLD1(t,1);
   r.c2=FLD1(t,2);
   DSPRDF(t);}}
 return r;}
extern OBJ _ABSTreeMapEnv_12_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* `,1 */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_12(x1,x2,x3,x4,x5,x6);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ABSTreeMapEnv_13(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* `,2 */
{TUP2 r;
 FRCLS(x1,1);
 FRCLS(x2,1);
 {OBJ x12=FLD1(x5,1);
  if(EXPRD(x5,1)){
   DSPRDF(x5);
  }else{
   COPY(x12,1);
   FRPRD(x5,1);}
  {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x3,2))(x3,x4,x12);
   r.c1=FLD1(t,1);
   r.c2=FLD1(t,2);
   DSPRDF(t);}}
 return r;}
extern OBJ _ABSTreeMapEnv_13_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* `,2 */
{OBJ r;
 {TUP2 t=_ABSTreeMapEnv_13(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

static OBJ _mt_5_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_5_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_5_2_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  FLDCLS(r,2)=FLDCLS(t,2);
  COPY(FLDCLS(r,1),1);
  COPY(FLDCLS(r,2),1);}
 INCCLS(r,2,1);
 FLDCLS(r,3)=t1;
 return r;}

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

static OBJ _mt_5_3_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);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1,t2);
 return r;}

static OBJ _mt_6_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_6_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_6_2_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  FLDCLS(r,2)=FLDCLS(t,2);
  COPY(FLDCLS(r,1),1);
  COPY(FLDCLS(r,2),1);}
 INCCLS(r,2,1);
 FLDCLS(r,3)=t1;
 return r;}

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

static OBJ _mt_6_3_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1,t2,t3);
 return r;}

init_ABSTreeMapEnv()
{
 static int visited=0; if(visited) return; visited=1;
 init_ABSTree();
 init_ANat();
 init_AOption();
 init_ASeq();
 init_ATree();
 init_APair();
 init_ATreeMapEnv();
 init_ABSTreeConv();
 init_AString();
 init_AChar();
 init_ARelCmp();
 init_ATreeMap();
 CLS(5,_ABSTreeMapEnv_13_c,__ABSTreeMapEnv_13);
 CLS(6,_ABSTreeMapEnv_12_c,__ABSTreeMapEnv_12);
 CLS(5,_ABSTreeMapEnv_11_c,__ABSTreeMapEnv_11);
 CLS(5,_ABSTreeMapEnv_10_c,__ABSTreeMapEnv_10);
 CLS(5,_ABSTreeMapEnv_9_c,__ABSTreeMapEnv_9);
 CLS(5,_ABSTreeMapEnv_8_c,__ABSTreeMapEnv_8);
 CLS(5,_ABSTreeMapEnv_7_c,__ABSTreeMapEnv_7);
 CLS(5,_ABSTreeMapEnv_6,__ABSTreeMapEnv_6);
 MTH(5,0,2,_mt_5_0_2);LZYMTH(5,0,2,_mt_5_0_2);
 MTH(5,0,3,_mt_5_0_3);LZYMTH(5,0,3,_mt_5_0_3);
 MTH(5,2,1,_mt_5_2_1);LZYMTH(5,2,1,_mt_5_2_1);
 MTH(5,2,3,_mt_5_2_3);LZYMTH(5,2,3,_mt_5_2_3);
 MTH(5,3,2,_mt_5_3_2);LZYMTH(5,3,2,_mt_5_3_2);
 MTH(6,0,2,_mt_6_0_2);LZYMTH(6,0,2,_mt_6_0_2);
 MTH(6,0,3,_mt_6_0_3);LZYMTH(6,0,3,_mt_6_0_3);
 MTH(6,2,1,_mt_6_2_1);LZYMTH(6,2,1,_mt_6_2_1);
 MTH(6,2,4,_mt_6_2_4);LZYMTH(6,2,4,_mt_6_2_4);
 MTH(6,3,3,_mt_6_3_3);LZYMTH(6,3,3,_mt_6_3_3);}

