

#include "BUILTIN.h"

#include "Array.h"
extern OBJ __AFct_24;

#include "Int.h"
extern OBJ _AInterOpal_15(OBJ);extern OBJ __AInterOpal_15;
extern OBJ __AInterOpal_21;
extern OBJ _AInterOpal_48(OBJ);extern OBJ __AInterOpal_48;
extern OBJ _AInterOpal_269(OBJ);extern OBJ __AInterOpal_269;
extern OBJ _AInterOpal_310(OBJ,OBJ);extern OBJ __AInterOpal_310;
extern OBJ _AInterOpal_315(OBJ,OBJ);extern OBJ __AInterOpal_315;

#include "Nat.h"
extern OBJ __ANatMap_3;
extern OBJ _ANatMap_4(OBJ,OBJ,OBJ);extern OBJ __ANatMap_4;
extern OBJ __AObjects_30;
extern OBJ __AOption_5;
extern OBJ _APair_5(OBJ);extern OBJ __APair_5;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _ASeq_40(OBJ,OBJ);extern OBJ __ASeq_40;
extern OBJ __AOcPos_2;
extern OBJ __AOcPos_4;
extern OBJ __AOcPos_6;
extern OBJ __AOcPos_9;

#include "Char.h"
extern OBJ _AMap_21(OBJ,OBJ);extern OBJ __AMap_21;
extern OBJ _AMap_33(OBJ,OBJ,OBJ);extern OBJ __AMap_33;

#include "Bitset.h"
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;

#include "Denotation.h"
extern OBJ _AInterOpalAccess_9(OBJ,OBJ);extern OBJ __AInterOpalAccess_9;
extern OBJ _AInterOpalAccess_11(OBJ);extern OBJ __AInterOpalAccess_11;
extern OBJ _AInterOpalAccess_14(OBJ);extern OBJ __AInterOpalAccess_14;
extern OBJ _AInterOpalAccess_15(OBJ);extern OBJ __AInterOpalAccess_15;
extern OBJ _AInterOpalAccess_19(OBJ);extern OBJ __AInterOpalAccess_19;
extern OBJ _AInterOpalAccess_21(OBJ,OBJ);extern OBJ __AInterOpalAccess_21;
extern OBJ _AInterOpalAccess_41(OBJ,OBJ);extern OBJ __AInterOpalAccess_41;
extern OBJ _AMapConv_4(OBJ,OBJ);extern OBJ __AMapConv_4;
extern OBJ _AMapReduce_5(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMapReduce_5;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASeqOfSeq_2(OBJ);extern OBJ __ASeqOfSeq_2;
extern OBJ _ASeqReduce_4(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_4;
extern OBJ _ASeqSort_2(OBJ,OBJ);extern OBJ __ASeqSort_2;
extern OBJ _AInterOpalModifier_1(OBJ);OBJ __AInterOpalModifier_1; /* params */
extern OBJ _AInterOpalModifier_2(OBJ);OBJ __AInterOpalModifier_2; /* params,1 */
extern OBJ _AInterOpalModifier_3(OBJ);OBJ __AInterOpalModifier_3; /* insts */
extern OBJ _AInterOpalModifier_4(OBJ);OBJ __AInterOpalModifier_4; /* reverseOnlys */
extern OBJ _AInterOpalModifier_5(OBJ);OBJ __AInterOpalModifier_5; /* symbols */
extern OBJ _AInterOpalModifier_6(OBJ);OBJ __AInterOpalModifier_6; /* symbols,1 */
extern OBJ _AInterOpalModifier_7(OBJ,OBJ);OBJ __AInterOpalModifier_7; /* asFct */
extern OBJ _AInterOpalModifier_8(OBJ,OBJ);OBJ __AInterOpalModifier_8; /* asKind */
extern OBJ _AInterOpalModifier_9(OBJ);OBJ __AInterOpalModifier_9; /* asInst */
extern OBJ _AInterOpalModifier_10(OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_10; /* asImpl */
extern OBJ _AInterOpalModifier_11(OBJ);OBJ __AInterOpalModifier_11; /* asPos */
extern OBJ _AInterOpalModifier_12(OBJ,OBJ);OBJ __AInterOpalModifier_12; /* params,2 */
extern OBJ _AInterOpalModifier_24(OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_24; /* asVariant */
extern OBJ _AInterOpalModifier_25(OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_25; /* asComp */
extern OBJ _AInterOpalModifier_26(OBJ,OBJ);OBJ __AInterOpalModifier_26; /* params,2'26 */
extern OBJ _AInterOpalModifier_27(OBJ,OBJ);OBJ __AInterOpalModifier_27; /* params,2'27 */
extern OBJ _AInterOpalModifier_28(OBJ);OBJ __AInterOpalModifier_28; /* insts'28 */
OBJ __AInterOpalModifier_29; /* reverseOnlys'29 */
extern OBJ _AInterOpalModifier_30(OBJ,OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_30; /* reverseOnlys'30 */
extern OBJ _AInterOpalModifier_31(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_31; /* reverseOnlys'31 */
extern OBJ _AInterOpalModifier_32(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_32; /* reverseOnlys'32 */
extern OBJ _AInterOpalModifier_33(OBJ,OBJ);OBJ __AInterOpalModifier_33; /* symbols,1'33 */
extern OBJ _AInterOpalModifier_34(OBJ,OBJ);OBJ __AInterOpalModifier_34; /* asFct'34 */
OBJ __AInterOpalModifier_35; /* asKind'35 */
OBJ __AInterOpalModifier_36; /* asKind'36 */
extern OBJ _AInterOpalModifier_37(OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_37; /* asVariant'37 */
extern OBJ _AInterOpalModifier_38(OBJ,OBJ,OBJ);OBJ __AInterOpalModifier_38; /* asImpl'38 */

extern OBJ _AInterOpalModifier_1(OBJ x1) /* params */
{OBJ r;
 CPPRD(x1,1);
 {OBJ x2;
  x2=_AInterOpalAccess_19(x1);
  r=_AInterOpalModifier_12(x1,x2);}
 return r;}

extern OBJ _AInterOpalModifier_2(OBJ x1) /* params,1 */
{OBJ r;
 {OBJ x2;OBJ x3;
  x2=_AInterOpalAccess_15(x1);
  CPPRD(x2,1);
  x3=_AInterOpalAccess_19(x2);
  r=_AInterOpalModifier_12(x2,x3);}
 return r;}

extern OBJ _AInterOpalModifier_3(OBJ x1) /* insts */
{OBJ r;
 CPCLS(__AInterOpalModifier_28,1);
 {OBJ x2;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AInterOpalModifier_28,1))(__AInterOpalModifier_28,__ABUILTIN_20);
  {OBJ x6=FLD1(x1,4);
   if(EXPRD(x1,1)){
    FLD1(x1,4)=NIL;DSPRD(x1);
   }else{
    COPY(x6,1);
    FRPRD(x1,1);}
   CPCLS(__AInterOpal_315,1);
   {OBJ x11;OBJ x12;
    x11=x6;
    x12=_AMapConv_4(__AInterOpal_315,x11);
    r=_ASeqFilter_2(x2,x12);}}}
 return r;}

extern OBJ _AInterOpalModifier_4(OBJ x1) /* reverseOnlys */
{OBJ r;
 CPPRD(x1,1);
 {OBJ x20;
  x20=_AInterOpalAccess_11(x1);
  {OBJ x35=FLD1(x1,2);OBJ x38=FLD1(x1,5);OBJ x39=FLD1(x1,6);
   COPY(x35,1);COPY(x38,1);COPY(x39,1);
   CPCLS(__AInterOpal_310,1);
   {OBJ x42;OBJ x44;OBJ x45;
    x42=_AMap_21(__AInterOpal_310,x39);
    if(ISTGPRM(x20,1)){
     CPCLS(__AInterOpalModifier_32,1);
     CPPRD(__ANatMap_3,1);
     CPCLS(__APair_5,1);
     {OBJ x43;
      x43=_AInterOpalModifier_3(x1);
      x44=_ASeqMap_3(__APair_5,x43);}
    }else{
     if(EXPRD(x1,1)){
      DSPRD(x1);
     }else{
      DCPRD(x1,1);}
     COPY(__AInterOpalModifier_29,1);
     CPCLS(__AInterOpalModifier_32,1);
     CPPRD(__ANatMap_3,1);
     x44=__AInterOpalModifier_29;}
    x45=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_32,3))(__AInterOpalModifier_32,x38,x44,x35);
    r=_ASeqReduce_4(x45,__ANatMap_3,x42);}}}
 return r;}

extern OBJ _AInterOpalModifier_5(OBJ x1) /* symbols */
{OBJ r;
 CPCLS(__AInterOpalModifier_6,1);
 {OBJ x2;OBJ x3;
  x2=_AInterOpalAccess_14(x1);
  x3=_ASeqMap_3(__AInterOpalModifier_6,x2);
  r=_ASeqOfSeq_2(x3);}
 return r;}

extern OBJ _AInterOpalModifier_6(OBJ x1) /* symbols,1 */
{OBJ r;
 {OBJ x23=FLD1(x1,3);OBJ x26=FLD1(x1,6);
  if(EXPRD(x1,1)){
   FLD1(x1,3)=NIL;FLD1(x1,6)=NIL;DSPRD(x1);
  }else{
   CPPRD(x23,1);COPY(x26,1);
   FRPRD(x1,1);}
  CPCLS(__AInterOpalModifier_33,1);
  CPCLS(__AInterOpal_310,1);
  {OBJ x29;
   PRD1(2,x29);FLD1(x29,1)=x23;FLD1(x29,2)=__ASeq_6;
   r=_AMapReduce_5(__AInterOpal_310,__AInterOpalModifier_33,x29,x26);}}
 return r;}

extern OBJ _AInterOpalModifier_7(register OBJ x1,register OBJ x2) /* asFct */
{OBJ r;OBJ* p1=&r;
 for(;;){
  switch(TGPRD(x2)){
   case 2:
    {OBJ x42=FLD(x2,1);OBJ x43=FLD(x2,2);
     if(EXPRD(x2,1)){
      CPCLS(x1,1);
      {OBJ x45;
       x45=_AInterOpalModifier_7(x1,x42);
       RPRD(x2,*p1);FLD(*p1,1)=x45;
       x2=x43;p1=&FLD(*p1,2);continue;}
     }else{
      CPPRD(x42,1);CPPRD(x43,1);
      CPCLS(x1,1);
      {OBJ x45;
       x45=_AInterOpalModifier_7(x1,x42);
       FRPRD(x2,1);PRD(2,2,*p1);FLD(*p1,1)=x45;
       x2=x43;p1=&FLD(*p1,2);continue;}}}break;
   case 0:
    {OBJ x46=FLD(x2,1);
     if(EXPRD(x2,1)){
      {OBJ x47;
       x47=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x46);
       RPRD(x2,*p1);FLD(*p1,1)=x47;}
     }else{
      CPPRD(x46,1);
      {OBJ x47;
       x47=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x46);
       FRPRD(x2,1);PRD(1,0,*p1);FLD(*p1,1)=x47;}}}break;
   default: 
    {OBJ x39=FLD(x2,1);
     if(EXPRD(x2,1)){
      CPCLS(__AInterOpalModifier_34,1);
      {OBJ x40;
       x40=(*(OBJ(*)(OBJ,OBJ))METHOD(__AInterOpalModifier_34,1))(__AInterOpalModifier_34,x1);
       RPRD(x2,*p1);
       FLD(*p1,1)=_ASeqMap_3(x40,x39);}
     }else{
      COPY(x39,1);
      CPCLS(__AInterOpalModifier_34,1);
      {OBJ x40;
       x40=(*(OBJ(*)(OBJ,OBJ))METHOD(__AInterOpalModifier_34,1))(__AInterOpalModifier_34,x1);
       FRPRD(x2,1);PRD(1,1,*p1);
       FLD(*p1,1)=_ASeqMap_3(x40,x39);}}}}
  break;}
 return r;}

extern OBJ _AInterOpalModifier_8(OBJ x1,OBJ x2) /* asKind */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  r=__AOption_5;
 }else{
  if(ISTGPRD(x2,1)){
   {OBJ x27=FLD(x2,1);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     CPPRD(x27,1);
     FRPRD(x2,1);}
    {
     PRD1(1,r);
     FLD1(r,1)=_AInterOpalModifier_7(x1,x27);}}
  }else{
   {OBJ x29=FLD(x2,1);
    if(EXPRD(x2,1)){
     FRPRD(FLD(x2,2),1);DSPRDF(x2);
    }else{
     CPPRD(x29,1);
     FRPRD(x2,1);}
    FRCLS(x1,1);
    CPPRD(__AInterOpalModifier_35,1);
    {OBJ x31;
     ADenotation_21(x29,__AInterOpalModifier_35,x31);
     if(ISTGPRM(x31,1)){
      COPY(__AInterOpalModifier_36,1);
      r=__AInterOpalModifier_36;
     }else{
      r=__AOption_5;}}}}}
 return r;}

extern OBJ _AInterOpalModifier_9(OBJ x1) /* asInst */
{OBJ r;
 if(ISPRM(x1)){
  switch(TGPRM(x1)){
   case 2:
    HLT("InterOpalModifier at <unknown> : missing else in asInst\'InterOpalModifier:inst->inst");break;
   default: 
    r=__AObjects_30;}
 }else{
  {OBJ x9=FLD1(x1,1);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    FRPRD(x1,1);}
   ANat_2(x9,r);}}
 return r;}

extern OBJ _AInterOpalModifier_10(OBJ x1,OBJ x2,OBJ x3) /* asImpl */
{OBJ r;
 if(ISTGPRD(x3,0)){
  {OBJ x38=FLD(x3,3);OBJ x39=FLD(x3,4);
   CPPRD(x38,1);COPY(x39,1);
   CPCLS(x2,1);
   CPCLS(__AInterOpalModifier_38,1);
   {OBJ x41;OBJ x42;OBJ x43;OBJ x44;
    x41=_AInterOpal_269(x3);
    x42=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x38);
    x43=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_38,2))(__AInterOpalModifier_38,x1,x2);
    x44=_AInterOpalModifier_11(x41);
    PRD1(3,r);FLD1(r,1)=x42;FLD1(r,3)=x44;
    FLD1(r,2)=_ASeqMap_3(x43,x39);}}
 }else{
  HLT("InterOpalModifier at <unknown> : missing else in asImpl\'InterOpalModifier:interOpal**(name->name)**property->sortImpl");}
 return r;}

extern OBJ _AInterOpalModifier_11(OBJ x1) /* asPos */
{OBJ r;
 if(ISPRM(x1)){
  r=__AOcPos_9;
 }else{
  switch(TGPRD(x1)){
   case 2:
    {OBJ x111=FLD(x1,2);OBJ x112=FLD(x1,3);
     {OBJ x114;
      x114=_AInterOpal_48(x1);
      if(ISTGPRM(x114,0)){
       PRDF(3,1,r);FLD(r,1)=__AOcPos_6;FLD(r,2)=x111;FLD(r,3)=x112;
      }else{
       PRDF(3,1,r);FLD(r,1)=__AOcPos_2;FLD(r,2)=x111;FLD(r,3)=x112;}}}break;
   case 3:
    {OBJ x116=FLD(x1,2);OBJ x117=FLD(x1,3);OBJ x118=FLD(x1,4);OBJ x119=FLD(x1,5);
     {OBJ x120;
      x120=_AInterOpal_48(x1);
      if(ISTGPRM(x120,0)){
       PRDF(5,2,r);FLD(r,1)=__AOcPos_6;FLD(r,2)=x116;FLD(r,3)=x117;FLD(r,4)=x118;FLD(r,5)=x119;
      }else{
       if(ISTGPRM(x120,2)){
	PRDF(5,2,r);FLD(r,1)=__AOcPos_4;FLD(r,2)=x116;FLD(r,3)=x117;FLD(r,4)=x118;FLD(r,5)=x119;
       }else{
	PRDF(5,2,r);FLD(r,1)=__AOcPos_2;FLD(r,2)=x116;FLD(r,3)=x117;FLD(r,4)=x118;FLD(r,5)=x119;}}}}break;
   default: 
    if(EXPRD(x1,1)){
     DSPRDF(x1);
    }else{
     DCPRD(x1,1);}
    r=__AOcPos_9;}}
 return r;}

extern OBJ _AInterOpalModifier_12(OBJ x1,OBJ x2) /* params,2 */
{OBJ r;
 CPCLS(__AInterOpalModifier_26,1);
 CPCLS(__AInterOpalModifier_27,1);
 {OBJ x3;OBJ x4;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__AInterOpalModifier_26,1))(__AInterOpalModifier_26,x1);
  x4=_ASeqFilter_2(x3,x2);
  r=_ASeqSort_2(__AInterOpalModifier_27,x4);}
 return r;}

extern OBJ _AInterOpalModifier_24(OBJ x1,OBJ x2,OBJ x3) /* asVariant */
{OBJ r;
 {OBJ x29=FLD1(x3,1);OBJ x30=FLD1(x3,2);OBJ x31=FLD1(x3,3);OBJ x32=FLD1(x3,4);
  if(EXPRD(x3,1)){
   CPCLS(x2,2);
   CPCLS(__AInterOpalModifier_37,1);
   {OBJ x33;OBJ x34;OBJ x35;OBJ x36;
    x33=_AInterOpalModifier_11(x29);
    x34=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_37,2))(__AInterOpalModifier_37,x1,x2);
    x35=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x31);
    x36=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x30);
    RSOME(x3,r);FLD1(r,1)=x36;FLD1(r,2)=x35;FLD1(r,4)=x33;
    FLD1(r,3)=_ASeqMap_3(x34,x32);}
  }else{
   COPY(x29,1);CPPRD(x30,1);CPPRD(x31,1);COPY(x32,1);
   CPCLS(x2,2);
   CPCLS(__AInterOpalModifier_37,1);
   {OBJ x33;OBJ x34;OBJ x35;OBJ x36;
    x33=_AInterOpalModifier_11(x29);
    x34=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_37,2))(__AInterOpalModifier_37,x1,x2);
    x35=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x31);
    x36=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x30);
    FRPRD(x3,1);PRD1(4,r);FLD1(r,1)=x36;FLD1(r,2)=x35;FLD1(r,4)=x33;
    FLD1(r,3)=_ASeqMap_3(x34,x32);}}}
 return r;}

extern OBJ _AInterOpalModifier_25(OBJ x1,OBJ x2,OBJ x3) /* asComp */
{OBJ r;
 {OBJ x33=FLD1(x3,1);OBJ x34=FLD1(x3,2);
  if(EXPRD(x3,1)){
   CPPRD(x34,1);
   DSPRDF(x3);
  }else{
   COPY(x33,1);CPPRD(x34,2);
   FRPRD(x3,1);}
  CPCLS(x2,1);
  {OBJ x35;OBJ x36;OBJ x37;
   x35=_AInterOpalModifier_11(x33);
   x36=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x34);
   x37=_AInterOpalAccess_21(x1,x34);
   {OBJ x41=FLD1(x37,4);
    if(EXPRD(x37,1)){
     FLD1(x37,4)=NIL;DSPRD(x37);
    }else{
     COPY(x41,1);
     FRPRD(x37,1);}
    if(ISPRD(x41)&&(ISTGPRD(x41,1))){
     {OBJ x45=FLD(x41,1);
      if(EXPRD(x41,1)){
       DSPRDF(x41);
      }else{
       CPPRD(x45,1);
       FRPRD(x41,1);}
      {
       PRD1(3,r);FLD1(r,1)=x36;FLD1(r,3)=x35;
       FLD1(r,2)=_AInterOpalModifier_7(x2,x45);}}
    }else{
     HLT("InterOpal at <unknown> : undefined selection fct\'InterOpal:kind->fct");}}}}
 return r;}

extern OBJ _AInterOpalModifier_26(OBJ x1,OBJ x2) /* params,2'26 */
{OBJ r;
 r=_AInterOpalAccess_9(x1,x2);
 return r;}

extern OBJ _AInterOpalModifier_27(OBJ x1,OBJ x2) /* params,2'27 */
{OBJ r;
 {OBJ x34=FLD1(x1,5);
  if(EXPRD(x1,1)){
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   COPY(x34,1);
   FRPRD(x1,1);}
  {OBJ x53=FLD1(x2,5);
   if(EXPRD(x2,1)){
    FLD1(x2,5)=NIL;DSPRD(x2);
   }else{
    COPY(x53,1);
    FRPRD(x2,1);}
   if(ISPRD(x34)&&(ISTGPRD(x34,2))){
    {OBJ x57=FLD(x34,2);
     if(EXPRD(x34,1)){
      FREE(FLD(x34,1),1);DSPRDF(x34);
     }else{
      FRPRD(x34,1);}
     if(ISPRD(x53)&&(ISTGPRD(x53,2))){
      {OBJ x59=FLD(x53,2);
       if(EXPRD(x53,1)){
	FREE(FLD(x53,1),1);DSPRDF(x53);
       }else{
	FRPRD(x53,1);}
       ANat_80(x57,x59,r);}
     }else{
      HLT("InterOpal at <unknown> : undefined selection no\'InterOpal:impl->nat");}}
   }else{
    HLT("InterOpal at <unknown> : undefined selection no\'InterOpal:impl->nat");}}}
 return r;}

extern OBJ _AInterOpalModifier_28(OBJ x1) /* insts'28 */
{OBJ r;
 CPCLS(__AInterOpal_15,1);
 CPCLS(__APair_5,1);
 CPCLS(__ACompose_4,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AInterOpal_15,__APair_5);
 return r;}

extern OBJ _AInterOpalModifier_30(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* reverseOnlys'30 */
{OBJ r;
 {OBJ x5;
  PRD1(3,x5);FLD1(x5,1)=x2;FLD1(x5,2)=x1;FLD1(x5,3)=x3;
  r=_AInterOpalAccess_41(x5,x4);}
 return r;}

extern OBJ _AInterOpalModifier_31(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* reverseOnlys'31 */
{OBJ r;
 CPCLS(__AInterOpal_315,1);
 COPY(x4,1);
 {OBJ x6;OBJ x8;OBJ x13;
  x6=_AMap_33(__AInterOpal_315,x1,x4);
  if(ISPRM(x6)){
   x8=__ABUILTIN_5;
  }else{
   x8=__ABUILTIN_3;}
  if(ISTGPRM(x8,1)){
   FREE(x2,1);
   FREE(x3,1);
   FREE(x4,1);
   FREE(x6,1);
   x13=__ASeq_6;
  }else{
   {OBJ x10;OBJ x11;OBJ x12;
    if(ISPRM(x6)){
     HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
    }else{
     {OBJ x9=FLD1(x6,1);
      if(EXPRD(x6,1)){
       x10=x9;
       DSPRDF(x6);
      }else{
       COPY(x9,1);
       x10=x9;
       FRPRD(x6,1);}
      COPY(x4,1);
      CPCLS(__AInterOpalModifier_30,1);}}
    x11=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_30,3))(__AInterOpalModifier_30,x2,x3,x4);
    x12=_ASeq_40(x11,x10);
    if(ISTGPRM(x12,1)){
     PRD1(2,x13);FLD1(x13,1)=x4;FLD1(x13,2)=__ASeq_6;
    }else{
     FREE(x4,1);
     x13=__ASeq_6;}}}
  r=_ASeq_26(x5,x13);}
 return r;}

extern OBJ _AInterOpalModifier_32(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* reverseOnlys'32 */
{OBJ r;
 CPCLS(__AInterOpalModifier_31,1);
 {OBJ x6;OBJ x7;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AInterOpalModifier_31,3))(__AInterOpalModifier_31,x1,x3,x4);
  x7=_ASeqReduce_4(x6,__ASeq_6,x2);
  r=_ANatMap_4(x4,x7,x5);}
 return r;}

extern OBJ _AInterOpalModifier_33(OBJ x1,OBJ x2) /* symbols,1'33 */
{OBJ r;
 {OBJ x5=FLD1(x1,3);
  if(EXPRD(x1,1)){
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   CPPRD(x5,1);
   FRPRD(x1,1);}
  {OBJ x10;
   x10=x5;
   PRD1(2,r);FLD1(r,1)=x10;FLD1(r,2)=x2;}}
 return r;}

extern OBJ _AInterOpalModifier_34(OBJ x1,OBJ x2) /* asFct'34 */
{OBJ r;
 r=_AInterOpalModifier_7(x1,x2);
 return r;}

extern OBJ _AInterOpalModifier_37(OBJ x1,OBJ x2,OBJ x3) /* asVariant'37 */
{OBJ r;
 r=_AInterOpalModifier_25(x1,x2,x3);
 return r;}

extern OBJ _AInterOpalModifier_38(OBJ x1,OBJ x2,OBJ x3) /* asImpl'38 */
{OBJ r;
 r=_AInterOpalModifier_24(x1,x2,x3);
 return r;}



static OBJ _mt_1_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 {OBJ t3;
  DCCLS(t,1);
  t3=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t3,1))(t3,t2);}
 return r;}

init_AInterOpalModifier()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 init_AArray();
 init_AFct();
 init_AInt();
 init_AName();
 init_ASeqConv();
 init_AImpl();
 init_AInterOpal();
 init_ANat();
 init_ANatMap();
 init_AObjects();
 init_AOption();
 init_APair();
 init_ARep();
 init_ASeq();
 init_AOcPos();
 init_AChar();
 init_ASet();
 init_AMap();
 init_ADyn();
 init_ABitset();
 init_ACompose();
 init_ADenotation();
 init_AInterOpalAccess();
 init_AMapConv();
 init_AMapReduce();
 init_ASeqFilter();
 init_ASeqMap();
 init_ASeqOfSeq();
 init_ASeqReduce();
 init_ASeqSort();
 init_ASetConv();
 init_AString();
 CLS(5,_AInterOpalModifier_31,__AInterOpalModifier_31);
 CLS(4,_AInterOpalModifier_30,__AInterOpalModifier_30);
 LCLS(1,_AInterOpalModifier_28,__AInterOpalModifier_28);
 CLS(2,_AInterOpalModifier_27,__AInterOpalModifier_27);
 CLS(2,_AInterOpalModifier_26,__AInterOpalModifier_26);
 CLS(3,_AInterOpalModifier_25,__AInterOpalModifier_25);
 CLS(3,_AInterOpalModifier_24,__AInterOpalModifier_24);
 CLS(2,_AInterOpalModifier_12,__AInterOpalModifier_12);
 CLS(1,_AInterOpalModifier_11,__AInterOpalModifier_11);
 CLS(3,_AInterOpalModifier_10,__AInterOpalModifier_10);
 CLS(1,_AInterOpalModifier_9,__AInterOpalModifier_9);
 CLS(2,_AInterOpalModifier_8,__AInterOpalModifier_8);
 CLS(2,_AInterOpalModifier_7,__AInterOpalModifier_7);
 CLS(3,_AInterOpalModifier_38,__AInterOpalModifier_38);
 CLS(1,_AInterOpalModifier_6,__AInterOpalModifier_6);
 CLS(3,_AInterOpalModifier_37,__AInterOpalModifier_37);
 CLS(1,_AInterOpalModifier_5,__AInterOpalModifier_5);
 CLS(1,_AInterOpalModifier_4,__AInterOpalModifier_4);
 DEN("any",__AInterOpalModifier_35);
 CLS(1,_AInterOpalModifier_3,__AInterOpalModifier_3);
 CLS(2,_AInterOpalModifier_34,__AInterOpalModifier_34);
 CLS(1,_AInterOpalModifier_2,__AInterOpalModifier_2);
 CLS(2,_AInterOpalModifier_33,__AInterOpalModifier_33);
 CLS(1,_AInterOpalModifier_1,__AInterOpalModifier_1);
 CLS(5,_AInterOpalModifier_32,__AInterOpalModifier_32);
 MTH(1,0,2,_mt_1_0_2);LZYMTH(1,0,2,_mt_1_0_2);
 PRD1F(2,__AInterOpalModifier_29);FLD1(__AInterOpalModifier_29,1)=__AInterOpal_21;FLD1(__AInterOpalModifier_29,2)=__ASeq_6;
 COPY(__AFct_24,1);
 PRD1(1,__AInterOpalModifier_36);FLD1(__AInterOpalModifier_36,1)=__AFct_24;}

