

#include "BUILTIN.h"
extern OBJ _ASet_18(OBJ,OBJ,OBJ);extern OBJ __ASet_18;
extern OBJ _ASet_33(OBJ,OBJ,OBJ);extern OBJ __ASet_33;
extern OBJ _ASet_39(OBJ,OBJ,OBJ);extern OBJ __ASet_39;
extern OBJ _ASet_40(OBJ,OBJ,OBJ);extern OBJ __ASet_40;
extern OBJ _ASet_41(OBJ,OBJ,OBJ);extern OBJ __ASet_41;

#include "Nat.h"
extern OBJ __ASeq_6;
extern OBJ _ASetMap_5(OBJ,OBJ,OBJ,OBJ);extern OBJ __ASetMap_5;
extern OBJ _ASeqOfSeq_3(OBJ,OBJ);extern OBJ __ASeqOfSeq_3;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASetConv_3(OBJ,OBJ);extern OBJ __ASetConv_3;

#include "Char.h"
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_3;
extern OBJ _ASetOfSet_3(OBJ,OBJ);OBJ __ASetOfSet_3; /* flat */
extern OBJ _ASetOfSet_4(OBJ,OBJ);OBJ __ASetOfSet_4; /* P */
extern OBJ _ASetOfSet_5(OBJ,OBJ,OBJ);OBJ __ASetOfSet_5; /* partition */
OBJ __ASetOfSet_6; /* P'6 */
extern OBJ _ASetOfSet_7(OBJ,OBJ,OBJ);OBJ __ASetOfSet_7; /* P'7 */

extern OBJ _ASetOfSet_3(OBJ x1,OBJ x2) /* flat */
{OBJ r;
 CPCLS(__ASet_18,1);
 {OBJ x3;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASet_18,1))(__ASet_18,x1);
  r=_ASeqReduce_3(x3,__ASeq_6,x2);}
 return r;}

extern OBJ _ASetOfSet_4(OBJ x1,OBJ x2) /* P */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  COPY(__ASetOfSet_6,1);
  r=__ASetOfSet_6;
 }else{
  {OBJ x14=FLD1(x2,1);
   COPY(x14,2);
   CPCLS(x1,3);
   CPCLS(__ASetOfSet_7,1);
   CPCLS(__ASet_33,1);
   {OBJ x16;OBJ x17;OBJ x18;OBJ x19;OBJ x20;
    x16=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASet_33,1))(__ASet_33,x1);
    CPCLS(x16,2);
    x17=_ASet_40(x1,x14,x2);
    x18=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ASetOfSet_7,2))(__ASetOfSet_7,x1,x14);
    x19=_ASetOfSet_4(x1,x17);
    COPY(x19,1);
    x20=_ASetMap_5(x16,x16,x18,x19);
    r=_ASet_41(x16,x20,x19);}}}
 return r;}

extern OBJ _ASetOfSet_5(OBJ x1,OBJ x2,OBJ x3) /* partition */
{OBJ r;
 CPCLS(__ASet_33,1);
 CPCLS(__ASetConv_3,1);
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASet_33,1))(__ASet_33,x1);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetConv_3,1))(__ASetConv_3,x1);
  x6=_ASeqOfSeq_3(x2,x3);
  x7=_ASeqMap_3(x5,x6);
  r=_ASetConv_3(x4,x7);}
 return r;}

extern OBJ _ASetOfSet_7(OBJ x1,OBJ x2,OBJ x3) /* P'7 */
{OBJ r;
 r=_ASet_39(x1,x2,x3);
 return r;}


init_ASetOfSet()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASet();
 init_ANat();
 init_ASeq();
 init_AOption();
 init_ASetMap();
 init_ASetReduce();
 init_ASeqOfSeq();
 init_ASeqMap();
 init_ASetConv();
 init_AString();
 init_AChar();
 init_ASeqReduce();
 init_ASeqConv();
 CLS(3,_ASetOfSet_7,__ASetOfSet_7);
 CLS(3,_ASetOfSet_5,__ASetOfSet_5);
 CLS(2,_ASetOfSet_4,__ASetOfSet_4);
 CLS(2,_ASetOfSet_3,__ASetOfSet_3);
 PRD1F(2,__ASetOfSet_6);FLD1(__ASetOfSet_6,1)=__ASeq_6;FLD1(__ASetOfSet_6,2)=__ASeq_6;}

