

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

#include "Nat.h"

#include "Char.h"
extern OBJ _AFmtPair_3(OBJ,OBJ,OBJ);OBJ __AFmtPair_3; /* fmtPair */
OBJ __AFmtPair_4; /* fmtPair'4 */
OBJ __AFmtPair_5; /* fmtPair'5 */
extern OBJ _AFmtPair_6(OBJ);OBJ __AFmtPair_6; /* fmtPair'6 */
OBJ __AFmtPair_7; /* fmtPair'7 */
extern OBJ _AFmtPair_8(OBJ);OBJ __AFmtPair_8; /* fmtPair'8 */
OBJ __AFmtPair_9; /* fmtPair'9 */
extern OBJ _AFmtPair_10(OBJ);OBJ __AFmtPair_10; /* fmtPair'10 */
OBJ __AFmtPair_11; /* fmtPair'11 */
extern OBJ _AFmtPair_12(OBJ);OBJ __AFmtPair_12; /* fmtPair'12 */

extern OBJ _AFmtPair_3(OBJ x1,OBJ x2,OBJ x3) /* fmtPair */
{OBJ r;
 CPCLS(__AFmtPair_6,1);
 CPCLS(__AFmtPair_8,1);
 CPCLS(__AFmtPair_10,1);
 CPCLS(__AFmtPair_12,1);
 {OBJ x10;OBJ x11;OBJ x12;OBJ x13;
  x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtPair_6,1))(__AFmtPair_6,__ABUILTIN_20);
  x11=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtPair_8,1))(__AFmtPair_8,__ABUILTIN_20);
  x12=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtPair_10,1))(__AFmtPair_10,__ABUILTIN_20);
  x13=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFmtPair_12,1))(__AFmtPair_12,__ABUILTIN_20);
  {OBJ x22=FLD1(x3,1);OBJ x23=FLD1(x3,2);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    COPY(x22,1);COPY(x23,1);
    FRPRD(x3,1);}
   COPY(__AFmtPair_4,1);
   COPY(__AFmt_32,1);
   {OBJ x24;OBJ x25;OBJ x26;OBJ x27;OBJ x28;OBJ x29;OBJ x30;OBJ x31;
    x24=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x23);
    x25=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x22);
    PRD(2,7,x26);FLD(x26,1)=__AFmtPair_4;FLD(x26,2)=x10;
    PRD(2,7,x27);FLD(x27,1)=x12;FLD(x27,2)=x24;
    PRD(2,7,x28);FLD(x28,1)=x25;FLD(x28,2)=x27;
    PRD(2,7,x29);FLD(x29,1)=x28;FLD(x29,2)=x13;
    PRD(2,7,x30);FLD(x30,1)=x11;FLD(x30,2)=x29;
    PRD(2,7,x31);FLD(x31,1)=x30;FLD(x31,2)=__AFmt_32;
    PRD(2,7,r);FLD(r,1)=x26;FLD(r,2)=x31;}}}
 return r;}

extern OBJ _AFmtPair_6(OBJ x1) /* fmtPair'6 */
{OBJ r;
 CPPRD(__AFmtPair_5,1);
 r=_AFmt_28(__AFmtPair_5);
 return r;}

extern OBJ _AFmtPair_8(OBJ x1) /* fmtPair'8 */
{OBJ r;
 CPPRD(__AFmtPair_7,1);
 r=_AFmt_28(__AFmtPair_7);
 return r;}

extern OBJ _AFmtPair_10(OBJ x1) /* fmtPair'10 */
{OBJ r;
 CPPRD(__AFmtPair_9,1);
 r=_AFmt_28(__AFmtPair_9);
 return r;}

extern OBJ _AFmtPair_12(OBJ x1) /* fmtPair'12 */
{OBJ r;
 CPPRD(__AFmtPair_11,1);
 r=_AFmt_28(__AFmtPair_11);
 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_AFmtPair()
{
 static int visited=0; if(visited) return; visited=1;
 init_AFmt();
 init_APair();
 init_AVoid();
 init_ANat();
 init_AString();
 init_ASeq();
 init_AOption();
 init_AChar();
 init_ASeqReduce();
 LCLS(1,_AFmtPair_12,__AFmtPair_12);
 DEN(")",__AFmtPair_11);
 LCLS(1,_AFmtPair_10,__AFmtPair_10);
 DEN(", ",__AFmtPair_9);
 LCLS(1,_AFmtPair_8,__AFmtPair_8);
 DEN("(",__AFmtPair_7);
 LCLS(1,_AFmtPair_6,__AFmtPair_6);
 DEN("&",__AFmtPair_5);
 CLS(3,_AFmtPair_3,__AFmtPair_3);
 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);
 PRDF(1,14,__AFmtPair_4);FLD(__AFmtPair_4,1)=__ANat_9;}

