

#include "BUILTIN.h"
extern OBJ _AFmt_28(OBJ);extern OBJ __AFmt_28;

#include "Nat.h"

#include "Char.h"
extern OBJ _AMapConv_4(OBJ,OBJ);extern OBJ __AMapConv_4;
extern OBJ __AMapConv_14;
extern OBJ __AMapConv_15;
extern OBJ _AFmtSeq_2(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AFmtSeq_2;
extern OBJ _AFmtMap_4(OBJ,OBJ,OBJ,OBJ);OBJ __AFmtMap_4; /* fmtMap */
extern OBJ _AFmtMap_5(OBJ);OBJ __AFmtMap_5; /* fmtMap'5 */
OBJ __AFmtMap_6; /* fmtMap'6 */
extern OBJ _AFmtMap_7(OBJ);OBJ __AFmtMap_7; /* fmtMap'7 */
extern OBJ _AFmtMap_8(OBJ);OBJ __AFmtMap_8; /* fmtMap'8 */
OBJ __AFmtMap_9; /* fmtMap'9 */
extern OBJ _AFmtMap_10(OBJ);OBJ __AFmtMap_10; /* fmtMap'10 */
extern OBJ _AFmtMap_11(OBJ,OBJ,OBJ);OBJ __AFmtMap_11; /* fmtMap'11 */

extern OBJ _AFmtMap_4(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* fmtMap */
{OBJ r;
 CPCLS(__AFmtMap_5,1);
 CPCLS(__AFmtMap_7,1);
 CPCLS(__AFmtMap_8,1);
 CPCLS(__AFmtMap_11,1);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x8;OBJ x9;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtMap_5,1))(__AFmtMap_5,__ABUILTIN_20);
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtMap_7,1))(__AFmtMap_7,__ABUILTIN_20);
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtMap_8,1))(__AFmtMap_8,__ABUILTIN_20);
  x8=_AMapConv_4(x1,x4);
  x9=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AFmtMap_11,2))(__AFmtMap_11,x2,x3);
  r=_AFmtSeq_2(x9,x5,x6,x7,x8);}
 return r;}

extern OBJ _AFmtMap_5(OBJ x1) /* fmtMap'5 */
{OBJ r;
 CPPRD(__AMapConv_14,1);
 r=_AFmt_28(__AMapConv_14);
 return r;}

extern OBJ _AFmtMap_7(OBJ x1) /* fmtMap'7 */
{OBJ r;
 CPPRD(__AFmtMap_6,1);
 r=_AFmt_28(__AFmtMap_6);
 return r;}

extern OBJ _AFmtMap_8(OBJ x1) /* fmtMap'8 */
{OBJ r;
 CPPRD(__AMapConv_15,1);
 r=_AFmt_28(__AMapConv_15);
 return r;}

extern OBJ _AFmtMap_10(OBJ x1) /* fmtMap'10 */
{OBJ r;
 CPPRD(__AFmtMap_9,1);
 r=_AFmt_28(__AFmtMap_9);
 return r;}

extern OBJ _AFmtMap_11(OBJ x1,OBJ x2,OBJ x3) /* fmtMap'11 */
{OBJ r;
 CPCLS(__AFmtMap_10,1);
 {OBJ x7;
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtMap_10,1))(__AFmtMap_10,__ABUILTIN_20);
  {OBJ x14=FLD1(x3,1);OBJ x15=FLD1(x3,2);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    COPY(x14,1);COPY(x15,1);
    FRPRD(x3,1);}
   {OBJ x16;OBJ x17;OBJ x18;
    x16=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x15);
    x17=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x14);
    PRD(2,7,x18);FLD(x18,1)=x7;FLD(x18,2)=x16;
    PRD(2,7,r);FLD(r,1)=x17;FLD(r,2)=x18;}}}
 return r;}

static OBJ _mt_3_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_3_2_1(OBJ t,OBJ t1) 
{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))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 return r;}
static OBJ _mt_3_2_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AFmtMap()
{
 static int visited=0; if(visited) return; visited=1;
 init_AMap();
 init_AFmt();
 init_AVoid();
 init_ANat();
 init_AString();
 init_ASeq();
 init_AOption();
 init_AChar();
 init_ASet();
 init_APair();
 init_AMapConv();
 init_AFmtSeq();
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 init_ASeqReduce();
 init_ASeqConv();
 CLS(3,_AFmtMap_11,__AFmtMap_11);
 LCLS(1,_AFmtMap_10,__AFmtMap_10);
 DEN(" |-> ",__AFmtMap_9);
 LCLS(1,_AFmtMap_8,__AFmtMap_8);
 LCLS(1,_AFmtMap_7,__AFmtMap_7);
 DEN(",",__AFmtMap_6);
 LCLS(1,_AFmtMap_5,__AFmtMap_5);
 CLS(4,_AFmtMap_4,__AFmtMap_4);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);}

