

#include "BUILTIN.h"
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;
extern OBJ _ACom_50(OBJ,OBJ);extern OBJ __ACom_50;

#include "Nat.h"
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _ACAST_3(OBJ);extern OBJ __ACAST_3;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;

#include "ComCompose.h"

#define __AComCompose_Sa_O1_L8 __AComCompose_8
#define _AComCompose_Sa_O1_L8 _AComCompose_8
#define AComCompose_8 AComCompose_Sa_O1_L8
extern OBJ __AComCompose_Sa_O1_L8;
extern OBJ _AComCompose_Sa_O1_L8(OBJ,OBJ);

#define __AComCompose_S7_L9 __AComCompose_9
#define _AComCompose_S7_L9 _AComCompose_9
#define AComCompose_9 AComCompose_S7_L9
extern OBJ __AComCompose_S7_L9;
extern OBJ _AComCompose_S7_L9(OBJ,OBJ);

#define __AComCompose_S7_O1_L10 __AComCompose_10
#define _AComCompose_S7_O1_L10 _AComCompose_10
#define AComCompose_10 AComCompose_S7_O1_L10
extern OBJ __AComCompose_S7_O1_L10;
extern OBJ _AComCompose_S7_O1_L10(OBJ,OBJ);
extern OBJ _AComCompose_Sa(OBJ,OBJ);OBJ __AComCompose_Sa; /* ; */
extern OBJ _AComCompose_Sa_O1(OBJ,OBJ);OBJ __AComCompose_Sa_O1; /* ;,1 */
extern OBJ _AComCompose_S7(OBJ,OBJ);OBJ __AComCompose_S7; /* & */
extern OBJ _AComCompose_S7_O1(OBJ,OBJ);OBJ __AComCompose_S7_O1; /* &,1 */
extern OBJ _AComCompose_AmkContCom(OBJ);OBJ __AComCompose_AmkContCom; /* mkContCom */
extern OBJ _AComCompose_Sa_O1_L8(OBJ,OBJ);OBJ __AComCompose_Sa_O1_L8; /* ;,1'8 */
extern OBJ _AComCompose_S7_L9(OBJ,OBJ);OBJ __AComCompose_S7_L9; /* &'9 */
extern OBJ _AComCompose_S7_O1_L10(OBJ,OBJ);OBJ __AComCompose_S7_O1_L10; /* &,1'10 */

#include "ComCompose.hc.c"

extern OBJ _AComCompose_Sa(OBJ x1,OBJ x2) /* ; */
{OBJ r;
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_ACAST_3(x1);
  AComCompose_AmkContCom(x2,x4);
  PRD1(2,x5);FLD1(x5,1)=x4;FLD1(x5,2)=__ASeq_6;
  if(ISTGPRD(x3,0)){
   {OBJ x6;OBJ x7=FLD(x3,2);
    if(EXPRD(x3,1)){
     {
      RPRD(x3,r);
      FLD(r,2)=_ASeq_26(x7,x5);}
    }else{
     x6=FLD(x3,1);CPCLS(x6,1);COPY(x7,1);
     {
      FRPRD(x3,1);PRD(2,0,r);FLD(r,1)=x6;
      FLD(r,2)=_ASeq_26(x7,x5);}}}
  }else{
   {OBJ x9=FLD(x3,1);
    if(EXPRD(x3,1)){
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      RPRD(x3,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}
    }else{
     COPY(x9,1);
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      FRPRD(x3,1);PRD(1,1,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}}}}}
 return r;}

extern OBJ _AComCompose_Sa_O1(OBJ x1,OBJ x2) /* ;,1 */
{OBJ r;
 CPCLS(__AComCompose_Sa_O1_L8,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_ACAST_3(x1);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AComCompose_Sa_O1_L8,1))(__AComCompose_Sa_O1_L8,x2);
  PRD1(2,x5);FLD1(x5,1)=x4;FLD1(x5,2)=__ASeq_6;
  if(ISTGPRD(x3,0)){
   {OBJ x6;OBJ x7=FLD(x3,2);
    if(EXPRD(x3,1)){
     {
      RPRD(x3,r);
      FLD(r,2)=_ASeq_26(x7,x5);}
    }else{
     x6=FLD(x3,1);CPCLS(x6,1);COPY(x7,1);
     {
      FRPRD(x3,1);PRD(2,0,r);FLD(r,1)=x6;
      FLD(r,2)=_ASeq_26(x7,x5);}}}
  }else{
   {OBJ x9=FLD(x3,1);
    if(EXPRD(x3,1)){
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      RPRD(x3,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}
    }else{
     COPY(x9,1);
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      FRPRD(x3,1);PRD(1,1,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}}}}}
 return r;}

extern OBJ _AComCompose_S7(OBJ x1,OBJ x2) /* & */
{OBJ r;
 CPCLS(__AComCompose_S7_L9,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_ACAST_3(x1);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AComCompose_S7_L9,1))(__AComCompose_S7_L9,x2);
  PRD1(2,x5);FLD1(x5,1)=x4;FLD1(x5,2)=__ASeq_6;
  if(ISTGPRD(x3,0)){
   {OBJ x6;OBJ x7=FLD(x3,2);
    if(EXPRD(x3,1)){
     {
      RPRD(x3,r);
      FLD(r,2)=_ASeq_26(x7,x5);}
    }else{
     x6=FLD(x3,1);CPCLS(x6,1);COPY(x7,1);
     {
      FRPRD(x3,1);PRD(2,0,r);FLD(r,1)=x6;
      FLD(r,2)=_ASeq_26(x7,x5);}}}
  }else{
   {OBJ x9=FLD(x3,1);
    if(EXPRD(x3,1)){
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      RPRD(x3,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}
    }else{
     COPY(x9,1);
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      FRPRD(x3,1);PRD(1,1,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}}}}}
 return r;}

extern OBJ _AComCompose_S7_O1(OBJ x1,OBJ x2) /* &,1 */
{OBJ r;
 CPCLS(__AComCompose_S7_O1_L10,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_ACAST_3(x1);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AComCompose_S7_O1_L10,1))(__AComCompose_S7_O1_L10,x2);
  PRD1(2,x5);FLD1(x5,1)=x4;FLD1(x5,2)=__ASeq_6;
  if(ISTGPRD(x3,0)){
   {OBJ x6;OBJ x7=FLD(x3,2);
    if(EXPRD(x3,1)){
     {
      RPRD(x3,r);
      FLD(r,2)=_ASeq_26(x7,x5);}
    }else{
     x6=FLD(x3,1);CPCLS(x6,1);COPY(x7,1);
     {
      FRPRD(x3,1);PRD(2,0,r);FLD(r,1)=x6;
      FLD(r,2)=_ASeq_26(x7,x5);}}}
  }else{
   {OBJ x9=FLD(x3,1);
    if(EXPRD(x3,1)){
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      RPRD(x3,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}
    }else{
     COPY(x9,1);
     CPCLS(__ACom_50,1);
     {OBJ x10;
      x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_50,1))(__ACom_50,x5);
      FRPRD(x3,1);PRD(1,1,r);
      FLD(r,1)=_ASeqMap_3(x10,x9);}}}}}
 return r;}

extern OBJ _AComCompose_Sa_O1_L8(OBJ x1,OBJ x2) /* ;,1'8 */
{OBJ r;
 FRPRD(x2,1);
 r=x1;
 return r;}

extern OBJ _AComCompose_S7_L9(OBJ x1,OBJ x2) /* &'9 */
{OBJ r;
 if(ISTGPRD(x2,0)){
  {OBJ x12=FLD(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x12,1);
    FRPRD(x2,1);}
   {OBJ x13;
    x13=_ACAST_3(x12);
    r=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x13);}}
 }else{
  FRCLS(x1,1);
  CPCLS(__ACom_47,1);
  {OBJ x15;
   x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x2);
   PRD(2,0,r);FLD(r,1)=x15;FLD(r,2)=__ASeq_6;}}
 return r;}

extern OBJ _AComCompose_S7_O1_L10(OBJ x1,OBJ x2) /* &,1'10 */
{OBJ r;
 if(ISTGPRD(x2,0)){
  if(EXPRD(x2,1)){
   FREE(FLD(x2,1),1);DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  r=x1;
 }else{
  FRPRD(x1,1);
  CPCLS(__ACom_47,1);
  {OBJ x9;
   x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x2);
   PRD(2,0,r);FLD(r,1)=x9;FLD(r,2)=__ASeq_6;}}
 return r;}

init_AComCompose()
{
 static int visited=0; if(visited) return; visited=1;
 init_ACom();
 init_ANat();
 init_AVoid();
 init_ASeq();
 init_AOption();
 init_ACAST();
 init_ASeqMap();
 CLS(2,_AComCompose_10,__AComCompose_10);
 CLS(2,_AComCompose_9,__AComCompose_9);
 CLS(2,_AComCompose_8,__AComCompose_8);
 CLS(1,_AComCompose_7,__AComCompose_7);
 CLS(2,_AComCompose_6,__AComCompose_6);
 CLS(2,_AComCompose_5,__AComCompose_5);
 CLS(2,_AComCompose_4,__AComCompose_4);
 CLS(2,_AComCompose_3,__AComCompose_3);
 init_const_AComCompose();}

