

#include "BUILTIN.h"
extern OBJ __ANatMap_3;
extern OBJ _ANatMap_4(OBJ,OBJ,OBJ);extern OBJ __ANatMap_4;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _AString_57(OBJ);extern OBJ __AString_57;

#include "Nat.h"

#include "Char.h"
extern OBJ _ASeqConv_3(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ASeqConv_3;
extern OBJ _ASeqConv_5(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ASeqConv_5;
extern OBJ __ASeqConv_8;
extern OBJ _APairConv_4(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __APairConv_4;
extern OBJ _AStringConv_1(OBJ);extern OBJ __AStringConv_1;
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;

#include "Array.h"
extern OBJ _AArrayMap_3(OBJ,OBJ);extern OBJ __AArrayMap_3;
extern OBJ _AArrayReduce_3(OBJ,OBJ,OBJ);extern OBJ __AArrayReduce_3;
extern OBJ _AMapConv_4(OBJ,OBJ);extern OBJ __AMapConv_4;
extern OBJ __AMapConv_13;
extern OBJ __AMapConv_14;
extern OBJ __AMapConv_15;
extern OBJ _ACAST_3(OBJ);extern OBJ __ACAST_3;
extern OBJ _ANatMapConv_2(OBJ);OBJ __ANatMapConv_2; /* asSeq */
extern OBJ _ANatMapConv_3(OBJ);OBJ __ANatMapConv_3; /* asNatMap */
extern OBJ _ANatMapConv_4(OBJ,OBJ,OBJ);OBJ __ANatMapConv_4; /* ` */
extern OBJ _ANatMapConv_5(OBJ,OBJ,OBJ);OBJ __ANatMapConv_5; /* `,1 */
extern OBJ _ANatMapConv_6(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ANatMapConv_6; /* `,2 */
extern OBJ _ANatMapConv_7(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ANatMapConv_7; /* `,3 */
extern OBJ _ANatMapConv_8(OBJ);OBJ __ANatMapConv_8; /* asSeq'8 */
OBJ __ANatMapConv_9; /* `,2'9 */

extern OBJ _ANatMapConv_2(OBJ x1) /* asSeq */
{OBJ r;
 CPCLS(__ANatMapConv_8,1);
 CPCLS(__ASeq_26,1);
 {OBJ x2;OBJ x3;OBJ x4;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__ANatMapConv_8,1))(__ANatMapConv_8,__ABUILTIN_20);
  x3=_ACAST_3(x1);
  x4=_AArrayMap_3(x2,x3);
  r=_AArrayReduce_3(__ASeq_26,__ASeq_6,x4);}
 return r;}

extern OBJ _ANatMapConv_3(OBJ x1) /* asNatMap */
{OBJ r;
 if(ISPRM(x1)){
  CPPRD(__ANatMap_3,1);
  r=__ANatMap_3;
 }else{
  {OBJ x28=FLD1(x1,1);OBJ x29=FLD1(x1,2);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    CPPRD(x28,1);COPY(x29,1);
    FRPRD(x1,1);}
   {OBJ x31;
    x31=_ANatMapConv_3(x29);
    {OBJ x32=FLD1(x28,1);OBJ x33=FLD1(x28,2);
     if(EXPRD(x28,1)){
      DSPRDF(x28);
     }else{
      COPY(x33,1);
      FRPRD(x28,1);}
     r=_ANatMap_4(x32,x33,x31);}}}}
 return r;}

extern OBJ _ANatMapConv_4(OBJ x1,OBJ x2,OBJ x3) /* ` */
{OBJ r;
 CPPRD(__ASeqConv_8,1);
 CPPRD(__AMapConv_13,1);
 CPPRD(__AMapConv_14,1);
 CPPRD(__AMapConv_15,1);
 r=_ANatMapConv_6(__AMapConv_13,__AMapConv_14,__ASeqConv_8,__AMapConv_15,x1,x2,x3);
 return r;}

extern OBJ _ANatMapConv_5(OBJ x1,OBJ x2,OBJ x3) /* `,1 */
{OBJ r;
 CPPRD(__ASeqConv_8,1);
 CPPRD(__AMapConv_13,1);
 CPPRD(__AMapConv_14,1);
 CPPRD(__AMapConv_15,1);
 r=_ANatMapConv_7(__AMapConv_13,__AMapConv_14,__ASeqConv_8,__AMapConv_15,x1,x2,x3);
 return r;}

extern OBJ _ANatMapConv_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* `,2 */
{OBJ r;
 CPPRD(__ANatMapConv_9,2);
 CPCLS(__APairConv_4,1);
 {OBJ x8;OBJ x9;
  x8=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__APairConv_4,5))(__APairConv_4,__ANatMapConv_9,x1,__ANatMapConv_9,x5,x6);
  x9=_ANatMapConv_2(x7);
  r=_ASeqConv_3(x2,x3,x4,x8,x9);}
 return r;}

extern OBJ _ANatMapConv_7(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* `,3 */
{OBJ r;
 CPPRD(__ANatMapConv_9,2);
 CPCLS(__AString_57,1);
 CPCLS(__APairConv_4,1);
 CPCLS(__AStringConv_1,2);
 CPCLS(__ACompose_4,3);
 {OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;
  x8=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AStringConv_1,x5);
  x9=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AStringConv_1,x6);
  x10=_ANatMapConv_2(x7);
  x11=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__APairConv_4,5))(__APairConv_4,__ANatMapConv_9,x1,__ANatMapConv_9,x8,x9);
  x12=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AString_57,x11);
  r=_ASeqConv_5(x2,x3,x4,x12,x10);}
 return r;}

extern OBJ _ANatMapConv_8(OBJ x1) /* asSeq'8 */
{OBJ r;
 CPCLS(__ANat_80,1);
 CPCLS(__AMapConv_4,1);
 r=(*(OBJ(*)(OBJ,OBJ))METHOD(__AMapConv_4,1))(__AMapConv_4,__ANat_80);
 return r;}

static OBJ _mt_1_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 {OBJ t3;
  DCCLS(t,1);
  t3=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t3,1))(t3,t2);}
 return r;}

static OBJ _mt_7_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_7_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,4);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 return r;}

static OBJ _mt_7_0_6(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,6);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 FLDCLS(r,6)=t6;
 return r;}

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

static OBJ _mt_7_1_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  COPY(FLDCLS(r,1),1);}
 INCCLS(r,1,5);
 FLDCLS(r,2)=t1;
 FLDCLS(r,3)=t2;
 FLDCLS(r,4)=t3;
 FLDCLS(r,5)=t4;
 FLDCLS(r,6)=t5;
 return r;}

static OBJ _mt_7_1_6(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6);
 return r;}

static OBJ _mt_7_4_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  FLDCLS(r,2)=FLDCLS(t,2);
  FLDCLS(r,3)=FLDCLS(t,3);
  FLDCLS(r,4)=FLDCLS(t,4);
  COPY(FLDCLS(r,1),1);
  COPY(FLDCLS(r,2),1);
  COPY(FLDCLS(r,3),1);
  COPY(FLDCLS(r,4),1);}
 INCCLS(r,4,2);
 FLDCLS(r,5)=t1;
 FLDCLS(r,6)=t2;
 return r;}

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

static OBJ _mt_7_6_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  COPY(FLDCLS(t,6),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),t1);
 return r;}
static OBJ _mt_7_6_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;FLDCLS(t,5)=NIL;FLDCLS(t,6)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_ANatMapConv()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANatMap();
 init_ASeq();
 init_APair();
 init_AString();
 init_ANat();
 init_AChar();
 init_AOption();
 init_ASet();
 init_ASeqConv();
 init_APairConv();
 init_ANatMapNotForUserPurpose();
 init_AStringConv();
 init_ACompose();
 init_AArray();
 init_AArrayMap();
 init_AArrayReduce();
 init_AMap();
 init_AMapConv();
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 init_ACAST();
 init_AStringMapSeq();
 DEN("",__ANatMapConv_9);
 LCLS(1,_ANatMapConv_8,__ANatMapConv_8);
 CLS(7,_ANatMapConv_7,__ANatMapConv_7);
 CLS(7,_ANatMapConv_6,__ANatMapConv_6);
 CLS(3,_ANatMapConv_5,__ANatMapConv_5);
 CLS(3,_ANatMapConv_4,__ANatMapConv_4);
 CLS(1,_ANatMapConv_3,__ANatMapConv_3);
 CLS(1,_ANatMapConv_2,__ANatMapConv_2);
 MTH(1,0,2,_mt_1_0_2);LZYMTH(1,0,2,_mt_1_0_2);
 MTH(7,0,1,_mt_7_0_1);LZYMTH(7,0,1,_mt_7_0_1);
 MTH(7,0,4,_mt_7_0_4);LZYMTH(7,0,4,_mt_7_0_4);
 MTH(7,0,6,_mt_7_0_6);LZYMTH(7,0,6,_mt_7_0_6);
 MTH(7,1,3,_mt_7_1_3);LZYMTH(7,1,3,_mt_7_1_3);
 MTH(7,1,5,_mt_7_1_5);LZYMTH(7,1,5,_mt_7_1_5);
 MTH(7,1,6,_mt_7_1_6);LZYMTH(7,1,6,_mt_7_1_6);
 MTH(7,4,2,_mt_7_4_2);LZYMTH(7,4,2,_mt_7_4_2);
 MTH(7,4,3,_mt_7_4_3);LZYMTH(7,4,3,_mt_7_4_3);
 MTH(7,6,1,_mt_7_6_1);LZYMTH(7,6,1,_mt_7_6_1_l);}

