

#include "BUILTIN.h"
extern OBJ _ASetByBST_18(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_18;
extern OBJ _ASetByBST_21(OBJ,OBJ);extern OBJ __ASetByBST_21;
extern OBJ _ASetByBST_34(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_34;
extern OBJ _ASetByBST_41(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_41;

#include "Nat.h"
extern OBJ _ABSTree_11(OBJ,OBJ);extern OBJ __ABSTree_11;
extern OBJ _ABSTree_57(OBJ,OBJ,OBJ);extern OBJ __ABSTree_57;
extern OBJ _ABSTree_58(OBJ,OBJ,OBJ);extern OBJ __ABSTree_58;
extern OBJ __ATree_7;
extern OBJ _ASeqOfSeq_3(OBJ,OBJ);extern OBJ __ASeqOfSeq_3;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASetByBSTConv_7(OBJ,OBJ);extern OBJ __ASetByBSTConv_7;
extern OBJ _ABSTreeConv_8(OBJ,OBJ);extern OBJ __ABSTreeConv_8;

#include "Char.h"
extern OBJ _ABSTreeMap_5(OBJ,OBJ,OBJ,OBJ);extern OBJ __ABSTreeMap_5;
extern OBJ _ABSTreeReduce_5(OBJ,OBJ,OBJ,OBJ);extern OBJ __ABSTreeReduce_5;
extern OBJ _ASetByBSTOfSetByBST_3(OBJ,OBJ);OBJ __ASetByBSTOfSetByBST_3; /* flat */
extern OBJ _ASetByBSTOfSetByBST_4(OBJ,OBJ);OBJ __ASetByBSTOfSetByBST_4; /* P */
extern OBJ _ASetByBSTOfSetByBST_5(OBJ,OBJ,OBJ);OBJ __ASetByBSTOfSetByBST_5; /* partition */
extern OBJ _ASetByBSTOfSetByBST_6(OBJ,OBJ,OBJ);OBJ __ASetByBSTOfSetByBST_6; /* P'6 */

extern OBJ _ASetByBSTOfSetByBST_3(OBJ x1,OBJ x2) /* flat */
{OBJ r;
 CPCLS(__ASetByBST_18,1);
 CPCLS(__ASetByBST_34,1);
 CPCLS(x1,1);
 {OBJ x3;OBJ x4;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetByBST_34,1))(__ASetByBST_34,x1);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetByBST_18,1))(__ASetByBST_18,x1);
  r=_ABSTreeReduce_5(x3,x4,__ATree_7,x2);}
 return r;}

extern OBJ _ASetByBSTOfSetByBST_4(OBJ x1,OBJ x2) /* P */
{OBJ r;
 CPCLS(__ASetByBST_34,1);
 CPCLS(x1,1);
 {OBJ x7;
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetByBST_34,1))(__ASetByBST_34,x1);
  if(ISPRM(x2)){
   FRCLS(x1,1);
   r=_ABSTree_11(x7,__ATree_7);
  }else{
   CPCLS(x1,3);
   CPPRD(x2,1);
   CPCLS(x7,2);
   CPCLS(__ASetByBSTOfSetByBST_6,1);
   {OBJ x16;OBJ x17;OBJ x18;OBJ x19;OBJ x20;
    x16=_ASetByBST_21(x1,x2);
    COPY(x16,1);
    x17=_ABSTree_58(x1,x16,x2);
    x18=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ASetByBSTOfSetByBST_6,2))(__ASetByBSTOfSetByBST_6,x1,x16);
    x19=_ASetByBSTOfSetByBST_4(x1,x17);
    COPY(x19,1);
    x20=_ABSTreeMap_5(x7,x7,x18,x19);
    r=_ASetByBST_41(x7,x20,x19);}}}
 return r;}

extern OBJ _ASetByBSTOfSetByBST_5(OBJ x1,OBJ x2,OBJ x3) /* partition */
{OBJ r;
 CPCLS(__ASetByBST_34,1);
 CPCLS(__ASetByBSTConv_7,1);
 CPCLS(x1,2);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;OBJ x8;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetByBST_34,1))(__ASetByBST_34,x1);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASetByBSTConv_7,1))(__ASetByBSTConv_7,x1);
  x6=_ABSTreeConv_8(x1,x3);
  x7=_ASeqOfSeq_3(x2,x6);
  x8=_ASeqMap_3(x5,x7);
  r=_ASetByBSTConv_7(x4,x8);}
 return r;}

extern OBJ _ASetByBSTOfSetByBST_6(OBJ x1,OBJ x2,OBJ x3) /* P'6 */
{OBJ r;
 r=_ABSTree_57(x1,x2,x3);
 return r;}

init_ASetByBSTOfSetByBST()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASetByBST();
 init_ANat();
 init_ASeq();
 init_AOption();
 init_ABSTree();
 init_ATree();
 init_APair();
 init_ASetByBSTMap();
 init_ASetByBSTReduce();
 init_ASeqOfSeq();
 init_ASeqMap();
 init_ASetByBSTConv();
 init_ABSTreeConv();
 init_AString();
 init_AChar();
 init_ABSTreeMap();
 init_ABSTreeReduce();
 init_ATreeMap();
 CLS(3,_ASetByBSTOfSetByBST_6,__ASetByBSTOfSetByBST_6);
 CLS(3,_ASetByBSTOfSetByBST_5,__ASetByBSTOfSetByBST_5);
 CLS(2,_ASetByBSTOfSetByBST_4,__ASetByBSTOfSetByBST_4);
 CLS(2,_ASetByBSTOfSetByBST_3,__ASetByBSTOfSetByBST_3);}

