

#include "BUILTIN.h"
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_3;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern TUP2 _ASeqFilter_5(OBJ,OBJ);extern OBJ __ASeqFilter_5;
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;
extern OBJ __AAc_10;
extern OBJ _AAc_20(OBJ);extern OBJ __AAc_20;
extern OBJ _AAc_21(OBJ);extern OBJ __AAc_21;
extern OBJ _AAc_22(OBJ);extern OBJ __AAc_22;
extern OBJ _AAc_41(OBJ);extern OBJ __AAc_41;
extern OBJ _AAc_43(OBJ);extern OBJ __AAc_43;
extern OBJ _AAc_50(OBJ);extern OBJ __AAc_50;
extern OBJ _AAc_75(OBJ);extern OBJ __AAc_75;
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;
extern OBJ _APreparedOptions_15(OBJ);extern OBJ __APreparedOptions_15;
extern OBJ _APreparedOptions_16(OBJ);extern OBJ __APreparedOptions_16;
extern OBJ _APreparedOptions_17(OBJ);extern OBJ __APreparedOptions_17;
extern OBJ _APreparedOptions_18(OBJ);extern OBJ __APreparedOptions_18;
extern OBJ _AOptimAnFun_1(OBJ,OBJ);extern OBJ __AOptimAnFun_1;
extern OBJ __AOcError_15;
extern OBJ _ATypeAnFun_4(OBJ);extern OBJ __ATypeAnFun_4;
extern OBJ _ATypeAnFun_5(OBJ,OBJ,OBJ);extern OBJ __ATypeAnFun_5;
extern OBJ _ATypeAnFun_8(OBJ,OBJ);extern OBJ __ATypeAnFun_8;
extern OBJ _ATypeAnFun_9(OBJ,OBJ);extern OBJ __ATypeAnFun_9;
extern OBJ __AIdeSet_2;
extern OBJ __AIdeBag_2;
extern OBJ _ASeq_5(OBJ);extern OBJ __ASeq_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 _ASeq_41(OBJ,OBJ);extern OBJ __ASeq_41;
extern OBJ _ASeq_42(OBJ,OBJ);extern OBJ __ASeq_42;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;
extern OBJ _AAcFun_1(OBJ,OBJ);extern OBJ __AAcFun_1;
extern OBJ _AAcFun_2(OBJ);extern OBJ __AAcFun_2;
extern OBJ _AAcFun_5(OBJ);extern OBJ __AAcFun_5;
extern OBJ _AAcFun_6(OBJ);extern OBJ __AAcFun_6;
extern OBJ _AAcFun_7(OBJ);extern OBJ __AAcFun_7;
extern OBJ _AAcFun_9(OBJ,OBJ);extern OBJ __AAcFun_9;
extern OBJ _AAcFun_10(OBJ,OBJ);extern OBJ __AAcFun_10;
extern OBJ _ABuiltin_18(OBJ);extern OBJ __ABuiltin_18;
extern OBJ _AOptimEvalFin_1(OBJ,OBJ,OBJ);extern OBJ __AOptimEvalFin_1;

#include "Nat.h"

#include "Array.h"
extern OBJ _AMap_10(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_10;
extern OBJ _AMap_16(OBJ,OBJ,OBJ);extern OBJ __AMap_16;
extern OBJ _AMap_20(OBJ,OBJ,OBJ);extern OBJ __AMap_20;
extern OBJ _AMap_31(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_31;
extern OBJ _AMap_33(OBJ,OBJ,OBJ);extern OBJ __AMap_33;
extern OBJ __AOption_5;

#include "Char.h"
extern OBJ _ABSTree_57(OBJ,OBJ,OBJ);extern OBJ __ABSTree_57;
extern OBJ _ABSTree_61(OBJ,OBJ,OBJ);extern OBJ __ABSTree_61;

#include "Bitset.h"

#include "Int.h"
extern OBJ _AIde_13(OBJ,OBJ);extern OBJ __AIde_13;
extern OBJ _AIde_14(OBJ,OBJ);extern OBJ __AIde_14;
extern OBJ __AAn_2;
extern OBJ _AAn_3(OBJ,OBJ);extern OBJ __AAn_3;
extern OBJ _AAn_5(OBJ,OBJ);extern OBJ __AAn_5;
extern OBJ _AAn_7(OBJ,OBJ);extern OBJ __AAn_7;
extern OBJ _ABag_40(OBJ,OBJ,OBJ);extern OBJ __ABag_40;
extern OBJ _ABag_44(OBJ,OBJ,OBJ);extern OBJ __ABag_44;
extern OBJ _ABag_45(OBJ,OBJ,OBJ);extern OBJ __ABag_45;
extern OBJ _ABag_46(OBJ,OBJ,OBJ);extern OBJ __ABag_46;
extern OBJ _ABag_48(OBJ,OBJ,OBJ);extern OBJ __ABag_48;
extern OBJ _ABag_49(OBJ,OBJ,OBJ);extern OBJ __ABag_49;
extern OBJ __ATypeAn_52;
extern OBJ __ASourceAn_6;
extern OBJ __ASourceAn_28;
extern OBJ __ASourceAn_30;
extern OBJ _AOptimAn_10(OBJ);extern OBJ __AOptimAn_10;
extern OBJ __AOptimAn_24;
extern OBJ _AMapConv_4(OBJ,OBJ);extern OBJ __AMapConv_4;
extern OBJ _APair_4(OBJ);extern OBJ __APair_4;
extern OBJ __AIdeMap_3;
extern TUP2 _AOptimEval_1(OBJ,OBJ,OBJ);OBJ __AOptimEval_1; /* optimEval */
extern OBJ _AOptimEval_3(OBJ);OBJ __AOptimEval_3; /* ideBag */
extern OBJ _AOptimEval_4(OBJ);OBJ __AOptimEval_4; /* ideBag? */
extern OBJ _AOptimEval_5(OBJ);OBJ __AOptimEval_5; /* bag */
OBJ __AOptimEval_6; /* all */
extern OBJ _AOptimEval_7(OBJ);OBJ __AOptimEval_7; /* all? */
extern OBJ _AOptimEval_9(OBJ,OBJ,OBJ);OBJ __AOptimEval_9; /* thr */
extern OBJ _AOptimEval_10(OBJ);OBJ __AOptimEval_10; /* thr? */
extern OBJ _AOptimEval_11(OBJ);OBJ __AOptimEval_11; /* discrs */
extern OBJ _AOptimEval_12(OBJ);OBJ __AOptimEval_12; /* applied */
extern OBJ _AOptimEval_13(OBJ);OBJ __AOptimEval_13; /* ideCnt */
extern OBJ _AOptimEval_15(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_15; /* inh */
extern OBJ _AOptimEval_16(OBJ);OBJ __AOptimEval_16; /* inh? */
extern OBJ _AOptimEval_17(OBJ);OBJ __AOptimEval_17; /* types */
extern OBJ _AOptimEval_18(OBJ);OBJ __AOptimEval_18; /* noMatch */
extern OBJ _AOptimEval_19(OBJ);OBJ __AOptimEval_19; /* equ */
extern OBJ _AOptimEval_20(OBJ);OBJ __AOptimEval_20; /* subs */
extern OBJ _AOptimEval_21(OBJ);OBJ __AOptimEval_21; /* unit */
extern OBJ _AOptimEval_22(OBJ);OBJ __AOptimEval_22; /* popts */
extern TUP2 _AOptimEval_24(OBJ,OBJ,OBJ);OBJ __AOptimEval_24; /* eval */
extern OBJ _AOptimEval_25(OBJ,OBJ);OBJ __AOptimEval_25; /* setSubs */
extern OBJ _AOptimEval_26(OBJ,OBJ);OBJ __AOptimEval_26; /* setEqu */
extern OBJ _AOptimEval_27(OBJ,OBJ);OBJ __AOptimEval_27; /* setNoMatch */
extern OBJ _AOptimEval_28(OBJ,OBJ);OBJ __AOptimEval_28; /* setTypes */
extern OBJ _AOptimEval_29(OBJ,OBJ);OBJ __AOptimEval_29; /* setIdeCnt */
extern OBJ _AOptimEval_30(OBJ,OBJ);OBJ __AOptimEval_30; /* setApplied */
extern OBJ _AOptimEval_31(OBJ,OBJ);OBJ __AOptimEval_31; /* setDiscrs */
extern TUP2 _AOptimEval_32(OBJ);OBJ __AOptimEval_32; /* newIde */
extern TUP2 _AOptimEval_33(OBJ,OBJ);OBJ __AOptimEval_33; /* rename */
OBJ __AOptimEval_34; /* {} */
extern OBJ _AOptimEval_35(OBJ,OBJ);OBJ __AOptimEval_35; /* incl */
extern OBJ _AOptimEval_36(OBJ,OBJ);OBJ __AOptimEval_36; /* + */
extern OBJ _AOptimEval_37(OBJ,OBJ);OBJ __AOptimEval_37; /* - */
extern OBJ _AOptimEval_38(OBJ,OBJ);OBJ __AOptimEval_38; /* * */
extern OBJ _AOptimEval_39(OBJ,OBJ);OBJ __AOptimEval_39; /* ct */
extern OBJ _AOptimEval_40(OBJ,OBJ);OBJ __AOptimEval_40; /* in */
extern TUP4 _AOptimEval_41(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_41; /* evalBlock */
extern OBJ _AOptimEval_42(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_42; /* substitution */
extern OBJ _AOptimEval_43(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_43; /* shallSubstitute? */
extern OBJ _AOptimEval_44(OBJ,OBJ,OBJ);OBJ __AOptimEval_44; /* shallSampleEqu? */
extern TUP2 _AOptimEval_45(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_45; /* lookupBestDistribCand */
extern TUP2 _AOptimEval_46(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_46; /* lookupBestDistribCand,1 */
extern OBJ _AOptimEval_47(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_47; /* distribWeightFun */
extern OBJ _AOptimEval_48(OBJ,OBJ);OBJ __AOptimEval_48; /* directCons? */
extern OBJ _AOptimEval_49(OBJ,OBJ);OBJ __AOptimEval_49; /* directSel? */
extern OBJ _AOptimEval_50(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_50; /* distribToMatch */
extern OBJ _AOptimEval_51(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_51; /* distrib */
extern TUP2 _AOptimEval_52(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_52; /* simplifyBlock */
extern TUP2 _AOptimEval_53(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_53; /* sampleTupleCands */
extern TUP3 _AOptimEval_54(OBJ,OBJ,OBJ);OBJ __AOptimEval_54; /* tupleCands */
extern TUP3 _AOptimEval_55(OBJ,OBJ,OBJ);OBJ __AOptimEval_55; /* tuple */
extern OBJ _AOptimEval_56(OBJ,OBJ,OBJ);OBJ __AOptimEval_56; /* calcAllMatches */
extern OBJ _AOptimEval_57(OBJ,OBJ);OBJ __AOptimEval_57; /* tupleBinds */
extern TUP2 _AOptimEval_58(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_58; /* genTupledMatch */
extern OBJ _AOptimEval_59(OBJ,OBJ,OBJ);OBJ __AOptimEval_59; /* deconsTupledLhs */
extern OBJ _AOptimEval_60(OBJ,OBJ);OBJ __AOptimEval_60; /* matchOf */
extern TUP2 _AOptimEval_61(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_61; /* evalMatch */
extern OBJ _AOptimEval_62(OBJ,OBJ);OBJ __AOptimEval_62; /* checkConstruction */
extern TUP2 _AOptimEval_63(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_63; /* combineCases */
extern OBJ _AOptimEval_64(OBJ,OBJ);OBJ __AOptimEval_64; /* notMatched? */
extern TUP2 _AOptimEval_65(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_65; /* simplifyCase */
extern OBJ _AOptimEval_66(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_66; /* defaultVariants */
extern TUP3 _AOptimEval_67(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_67; /* completeMatches */
extern OBJ _AOptimEval_68(OBJ,OBJ,OBJ);OBJ __AOptimEval_68; /* shallCompleteMatches */
extern OBJ _AOptimEval_69(OBJ);OBJ __AOptimEval_69; /* neverError? */
extern OBJ _AOptimEval_70(OBJ,OBJ);OBJ __AOptimEval_70; /* typeValAss */
extern TUP2 _AOptimEval_71(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimEval_71; /* genMatch */
extern TUP2 _AOptimEval_72(OBJ,OBJ);OBJ __AOptimEval_72; /* genVar */
extern OBJ _AOptimEval_73(OBJ);OBJ __AOptimEval_73; /* distribWeightFun'73 */
extern OBJ _AOptimEval_74(OBJ,OBJ);OBJ __AOptimEval_74; /* calcAllMatches'74 */
extern OBJ _AOptimEval_75(OBJ);OBJ __AOptimEval_75; /* tupleBinds'75 */
OBJ __AOptimEval_76; /* deconsTupledLhs'76 */
OBJ __AOptimEval_77; /* deconsTupledLhs'77 */
extern OBJ _AOptimEval_78(OBJ);OBJ __AOptimEval_78; /* deconsTupledLhs'78 */
extern OBJ _AOptimEval_79(OBJ,OBJ);OBJ __AOptimEval_79; /* notMatched?'79 */
OBJ __AOptimEval_80; /* defaultVariants'80 */
extern OBJ _AOptimEval_81(OBJ,OBJ);OBJ __AOptimEval_81; /* defaultVariants'81 */
extern OBJ _AOptimEval_82(OBJ,OBJ);OBJ __AOptimEval_82; /* defaultVariants'82 */
OBJ __AOptimEval_83; /* completeMatches'83 */
extern OBJ _AOptimEval_84(OBJ);OBJ __AOptimEval_84; /* simplifyCase'84 */
extern OBJ _AOptimEval_85(OBJ);OBJ __AOptimEval_85; /* simplifyCase'85 */
extern OBJ _AOptimEval_86(OBJ);OBJ __AOptimEval_86; /* eval'86 */
extern OBJ _AOptimEval_87(OBJ,OBJ);OBJ __AOptimEval_87; /* eval'87 */
extern OBJ _AOptimEval_88(OBJ,OBJ);OBJ __AOptimEval_88; /* eval'88 */
extern OBJ _AOptimEval_89(OBJ);OBJ __AOptimEval_89; /* eval'89 */
extern OBJ _AOptimEval_90(OBJ,OBJ);OBJ __AOptimEval_90; /* eval'90 */
extern OBJ _AOptimEval_91(OBJ,OBJ);OBJ __AOptimEval_91; /* eval'91 */
extern OBJ _AOptimEval_92(OBJ,OBJ);OBJ __AOptimEval_92; /* eval'92 */
extern OBJ _AOptimEval_93(OBJ,OBJ);OBJ __AOptimEval_93; /* eval'93 */
extern OBJ _AOptimEval_94(OBJ);OBJ __AOptimEval_94; /* evalMatch'94 */
extern OBJ _AOptimEval_95(OBJ);OBJ __AOptimEval_95; /* tuple'95 */
extern OBJ _AOptimEval_96(OBJ);OBJ __AOptimEval_96; /* simplifyBlock'96 */
OBJ __AOptimEval_97; /* optimEval'97 */

extern TUP2 _AOptimEval_1(OBJ x1,OBJ x2,OBJ x3) /* optimEval */
{TUP2 r;
 if(ISTGPRD(x3,2)){
  {OBJ x61=FLD(x3,4);
   CPPRD(x61,1);
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPPRD(x3,2);
   COPY(__AIdeMap_3,4);
   {OBJ x62;OBJ x63;OBJ x64;OBJ x65;OBJ x72;
    PRD1(6,x62);FLD1(x62,1)=x1;FLD1(x62,2)=x2;FLD1(x62,3)=__AIdeMap_3;FLD1(x62,4)=__AIdeMap_3;FLD1(x62,5)=__AIdeMap_3;FLD1(x62,6)=__AIdeMap_3;
    x63=_AAc_20(x3);
    x64=_AAc_21(x3);
    x65=_AAc_22(x3);
    if(ISPRM(x65)){
     x72=__AOptimAn_24;
    }else{
     {OBJ x69=FLD1(x65,3);
      COPY(x69,1);
      x72=x69;}}
    if(ISPRD(x72)&&(ISTGPRD(x72,1))){
     {OBJ x73=FLD(x72,1);OBJ x74=FLD(x72,2);FLAG x_x72=EXPRD(x72,1);
      if(x_x72){
      }else{}
      CPPRD(__AOptimEval_97,1);
      {TUP2 x76;
       x76=_AOptimEval_24(x62,__AOptimEval_97,x61);
       {OBJ x78=FLD1(x76.c1,1);
	if(EXPRD(x76.c1,1)){
	 DSPRD(x76.c1);
	}else{
	 FRPRD(x76.c1,1);}
	CPPRD(__AOcError_15,1);
	{OBJ x81;OBJ x82;OBJ x83;OBJ x84;
	 ANat_4(x78,x81);
	 if(x_x72){
	  RPRDF(x72,x82);FLD(x82,3)=x81;
	 }else{
	  FRPRD(x72,1);PRDF(3,1,x82);FLD(x82,1)=x73;FLD(x82,2)=x74;FLD(x82,3)=x81;}
	 x83=_AAn_7(x65,x82);
	 PRD(4,2,x84);FLD(x84,1)=x83;FLD(x84,2)=x64;FLD(x84,3)=x63;FLD(x84,4)=x76.c2;
	 r.c1=_AOptimEvalFin_1(x1,x2,x84);
	 r.c2=__AOcError_15;}}}}
    }else{
     HLT("OptimAn at <unknown> : undefined selection complexity\'OptimAn:optimAn->nat");}}}
 }else{
  HLT("OptimEval at <unknown> : missing else in optimEval\'OptimEval:popts**unit**dec->dec**err");}
 return r;}
extern OBJ _AOptimEval_1_c(OBJ x1,OBJ x2,OBJ x3) /* optimEval */
{OBJ r;
 {TUP2 t=_AOptimEval_1(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_3(OBJ x1) /* ideBag */
{OBJ r;
 PRD1(1,r);FLD1(r,1)=x1;
 return r;}

extern OBJ _AOptimEval_4(OBJ x1) /* ideBag? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_3;
 }else{
  if(EXPRD(x1,1)){
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;}
 return r;}

extern OBJ _AOptimEval_5(OBJ x1) /* bag */
{OBJ r;
 if(ISPRM(x1)){
  HLT("OptimEval at <120,16-18> : undefined selection bag\'OptimEval:discrBag->ideBag");
 }else{
  {OBJ x2=FLD1(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}}
 return r;}

extern OBJ _AOptimEval_7(OBJ x1) /* all? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x1,1)){
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimEval_9(OBJ x1,OBJ x2,OBJ x3) /* thr */
{OBJ r;
 PRD1(3,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;
 return r;}

extern OBJ _AOptimEval_10(OBJ x1) /* thr? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimEval_11(OBJ x1) /* discrs */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FREE(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_12(OBJ x1) /* applied */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FREE(FLD1(x1,3),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_13(OBJ x1) /* ideCnt */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   DSPRD(x1);
  }else{
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_15(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* inh */
{OBJ r;
 PRD1(6,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;FLD1(r,5)=x5;FLD1(r,6)=x6;
 return r;}

extern OBJ _AOptimEval_16(OBJ x1) /* inh? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimEval_17(OBJ x1) /* types */
{OBJ r;
 {OBJ x7=FLD1(x1,6);
  if(EXPRD(x1,1)){
   r=x7;
   FLD1(x1,6)=NIL;DSPRD(x1);
  }else{
   COPY(x7,1);
   r=x7;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_18(OBJ x1) /* noMatch */
{OBJ r;
 {OBJ x6=FLD1(x1,5);
  if(EXPRD(x1,1)){
   r=x6;
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   COPY(x6,1);
   r=x6;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_19(OBJ x1) /* equ */
{OBJ r;
 {OBJ x5=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r=x5;
   FLD1(x1,4)=NIL;DSPRD(x1);
  }else{
   COPY(x5,1);
   r=x5;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_20(OBJ x1) /* subs */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_21(OBJ x1) /* unit */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimEval_22(OBJ x1) /* popts */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern TUP2 _AOptimEval_24(register OBJ x1,register OBJ x2,register OBJ x3) /* eval */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  switch(TGPRD(x3)){
   case 4:
    {OBJ x2603=FLD(x3,2);OBJ x2604=FLD(x3,3);
     COPY(x2603,1);CPPRD(x2604,1);
     CPCLS(__AOptimEval_86,1);
     {OBJ x2605;OBJ x2606;
      x2605=_AAc_50(x3);
      x2606=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_86,1))(__AOptimEval_86,__ABUILTIN_20);
      {OBJ x2607;OBJ x2608;OBJ x2609=FLD1(x1,3);OBJ x2610;OBJ x2611;OBJ x2612=FLD1(x1,6);FLAG x_x1=EXPRD(x1,1);
       if(x_x1){
       }else{
	x2607=FLD1(x1,1);x2608=FLD1(x1,2);x2610=FLD1(x1,4);x2611=FLD1(x1,5);CPPRD(x2607,1);CPPRD(x2608,1);COPY(x2609,1);COPY(x2610,1);COPY(x2611,1);COPY(x2612,1);}
       COPY(x2603,1);
       CPCLS(__AOptimEval_33,1);
       CPCLS(__AAc_21,2);
       CPCLS(__AIde_14,2);
       CPCLS(__ATypeAnFun_4,1);
       {OBJ x2614;TUP2 x2615;OBJ x2617;OBJ x2618;OBJ x2619;OBJ x2620;OBJ x2621;OBJ x2623;
	x2614=_ASeqMap_3(__AAc_21,x2603);
	x2615=_ASeqMapEnv_4(__AOptimEval_33,x2,x2603);
	COPY(x2615.c2,3);
	x2617=_ASeqMap_3(__AAc_21,x2615.c2);
	x2618=_ASeqMap_3(__ATypeAnFun_4,x2615.c2);
	x2619=_AMap_10(__AIde_14,x2612,x2617,x2618);
	x2620=_ASeqMap_3(x2606,x2615.c2);
	x2621=_AMap_10(__AIde_14,x2609,x2614,x2620);
	if(x_x1){
	 RSOME(x1,x2623);FLD1(x2623,3)=x2621;FLD1(x2623,6)=x2619;
	}else{
	 FRPRD(x1,1);PRD1(6,x2623);FLD1(x2623,1)=x2607;FLD1(x2623,2)=x2608;FLD1(x2623,3)=x2621;FLD1(x2623,4)=x2610;FLD1(x2623,5)=x2611;FLD1(x2623,6)=x2619;}
	PRD(3,4,*p2);FLD(*p2,1)=x2605;FLD(*p2,2)=x2615.c2;
	x1=x2623;x2=x2615.c1;x3=x2604;p2=&FLD(*p2,3);continue;}}}}break;
   case 5:
    {OBJ x2629=FLD(x3,2);OBJ x2630=FLD(x3,3);
     COPY(x2629,1);CPPRD(x2630,1);
     CPPRD(x1,2);
     {OBJ x2631;TUP4 x2633;
      x2631=_AAc_50(x3);
      x2633=_AOptimEval_41(x1,x1,x2,x2629,x2630);
      if(ISPRM(x2633.c2)){
       {OBJ x2649=FLD1(x2633.c1,1);OBJ x2650=FLD1(x2633.c1,2);OBJ x2651=FLD1(x2633.c1,3);
	COPY(x2650,1);COPY(x2651,3);
	CPPRD(x1,1);
	COPY(x2633.c3,2);
	CPPRD(x2633.c4,1);
	CPCLS(__AOptimEval_87,1);
	{OBJ x2653;TUP2 x2654;
	 x2653=_ASeqReduce_3(__AOptimEval_87,x2651,x2633.c3);
	 x2654=_AOptimEval_46(x1,x2651,x2633.c3,x2633.c4,__AOption_5,__ANat_5);
	 if(ISPRM(x2654.c1)){
	  FREE(x2650,1);
	  FREE(x2651,1);
	  FREE(x2654.c2,1);
	  CPCLS(__APair_4,1);
	  {OBJ x2656;TUP2 x2658;
	   x2656=_ASeqMap_3(__APair_4,x2633.c3);
	   x2658=_AOptimEval_52(x1,x2633.c1,x2631,x2656,x2633.c4);
	   {OBJ x2660;OBJ x2661;
	    if(EXPRD(x2658.c1,1)){
	     *p2=x2658.c2;
	     RSOME(x2658.c1,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=x2653;
	    }else{
	     x2660=FLD1(x2658.c1,1);x2661=FLD1(x2658.c1,2);COPY(x2661,1);
	     *p2=x2658.c2;
	     FRPRD(x2658.c1,1);PRD1(3,*p1);FLD1(*p1,1)=x2660;FLD1(*p1,2)=x2661;FLD1(*p1,3)=x2653;}}}
	 }else{
	  {OBJ x2664=FLD1(x2654.c1,1);
	   if(EXPRD(x2654.c1,1)){
	    DSPRDF(x2654.c1);
	   }else{
	    CPPRD(x2664,1);
	    FRPRD(x2654.c1,1);}
	   FREE(x2633.c3,1);
	   CPPRD(x2633.c4,1);
	   {OBJ x2665;
	    x2665=_AAc_50(x2633.c4);
	    {OBJ x2666=FLD1(x2664,1);OBJ x2667=FLD1(x2664,2);
	     if(EXPRD(x2664,1)){
	      CPPRD(x2667,2);
	      DSPRDF(x2664);
	     }else{
	      COPY(x2666,1);CPPRD(x2667,3);
	      FRPRD(x2664,1);}
	     {OBJ x2668;OBJ x2669;
	      x2668=_AAc_21(x2667);
	      x2669=_AAc_22(x2667);
	      if(ISTGPRD(x2667,2)){
	       {OBJ x2673=FLD(x2667,4);
		if(EXPRD(x2667,1)){
		 CPPRD(x2673,1);
		 FLD(x2667,4)=NIL;DSPRD(x2667);
		}else{
		 CPPRD(x2673,2);
		 FRPRD(x2667,1);}
		CPPRD(x2668,1);
		{OBJ x2674;OBJ x2675;
		 PRD(2,0,x2674);FLD(x2674,1)=x2669;FLD(x2674,2)=x2668;
		 x2675=_AAc_50(x2673);
		 if(ISTGPRD(x2673,6)){
		  {OBJ x2677=FLD(x2673,2);OBJ x2678=FLD(x2673,3);OBJ x2679=FLD(x2673,4);FLAG x_x2673=EXPRD(x2673,1);
		   if(x_x2673){
		   }else{
		    CPPRD(x2677,1);COPY(x2678,1);CPPRD(x2679,1);}
		   COPY(x2653,1);
		   {OBJ x2680;OBJ x2684;OBJ x2685;OBJ x2687;OBJ x2688;OBJ x2689;OBJ x2690;OBJ x2691;OBJ x2692;OBJ x2693;OBJ x2694;OBJ x2697;
		    x2680=_AOptimEval_37(x2653,x2666);
		    if(ISPRM(x2680)){
		     CPPRD(x2633.c4,1);
		     CPPRD(x2674,1);
		     COPY(x2675,1);
		     CPPRD(x2677,1);
		     CPCLS(__AOptimEval_50,1);
		     CPCLS(__AOptimEval_88,1);
		     CPCLS(__APair_4,2);
		     x2684=__ABUILTIN_5;
		    }else{
		     {OBJ x2681=FLD1(x2680,1);
		      if(EXPRD(x2680,1)){
		       DSPRDF(x2680);
		      }else{
		       COPY(x2681,1);
		       FRPRD(x2680,1);}
		      if(ISTGPRD(x2677,2)){
		       {OBJ x2683=FLD(x2677,2);
			CPPRD(x2683,1);
			CPPRD(x2633.c4,1);
			CPPRD(x2674,1);
			COPY(x2675,1);
			CPPRD(x2677,1);
			CPCLS(__AOptimEval_50,1);
			CPCLS(__AOptimEval_88,1);
			CPCLS(__AIde_14,1);
			CPCLS(__APair_4,2);
			x2684=_ABag_48(__AIde_14,x2683,x2681);}
		      }else{
		       HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}
		    x2685=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_88,1))(__AOptimEval_88,x2677);
		    {TUP2 t=_ASeqFilter_5(x2685,x2654.c2);
		     x2687=t.c1;
		     x2688=t.c2;}
		    COPY(x2687,1);
		    COPY(x2688,1);
		    x2689=_ASeqMap_3(__APair_4,x2687);
		    x2690=_ASeqMap_3(__APair_4,x2688);
		    COPY(x2690,1);
		    x2691=_AOptimEval_51(x2675,x2690,x2674,x2633.c4,x2679);
		    x2692=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimEval_50,4))(__AOptimEval_50,x2675,x2690,x2674,x2633.c4);
		    x2693=_ASeqMap_3(x2692,x2678);
		    if(x_x2673){
		     RPRD(x2673,x2694);FREE(FLD(x2694,1),1);FLD(x2694,1)=x2665;FLD(x2694,3)=x2693;FLD(x2694,4)=x2691;
		    }else{
		     FRPRD(x2673,1);PRD(4,6,x2694);FLD(x2694,1)=x2665;FLD(x2694,2)=x2677;FLD(x2694,3)=x2693;FLD(x2694,4)=x2691;}
		    if(ISTGPRM(x2684,1)){
		     FREE(x2651,1);
		     FRPRD(x2668,1);
		     FREE(x2688,1);
		     x2697=__ABUILTIN_5;
		    }else{
		     {OBJ x2696;
		      if(ISPRM(x2651)){
		       FRPRD(x2668,1);
		       x2696=__ABUILTIN_5;
		      }else{
		       {OBJ x2695=FLD1(x2651,1);
			COPY(x2695,1);
			if(EXPRD(x2651,1)){
			 FREE(FLD1(x2651,1),1);DSPRDF(x2651);
			}else{
			 DCPRD(x2651,1);}
			CPCLS(__AIde_14,1);
			x2696=_ABag_48(__AIde_14,x2668,x2695);}}
		      if(ISTGPRM(x2696,1)){
		       FREE(x2688,1);
		       x2697=__ABUILTIN_5;
		      }else{
		       CPCLS(__AOptimEval_89,1);
		       x2697=_ASeq_40(__AOptimEval_89,x2688);}}}
		    if(ISTGPRM(x2697,1)){
		     if(EXPRD(x2633.c1,1)){
		      DSPRD(x2633.c1);
		     }else{
		      DCPRD(x2633.c1,1);}
		     FREE(x2653,1);
		     {OBJ x2698=FLD1(x1,1);OBJ x2699=FLD1(x1,2);OBJ x2701=FLD1(x1,4);OBJ x2702=FLD1(x1,5);OBJ x2703=FLD1(x1,6);
		      CPPRD(x2698,1);CPPRD(x2699,1);COPY(x2701,1);COPY(x2702,1);COPY(x2703,1);
		      COPY(x2687,1);
		      COPY(__AOptimEval_34,1);
		      CPCLS(__AOptimEval_91,1);
		      COPY(__AIdeMap_3,1);
		      {OBJ x2704;OBJ x2705;OBJ x2706;TUP2 x2708;
		       PRD1(6,x2704);FLD1(x2704,1)=x2698;FLD1(x2704,2)=x2699;FLD1(x2704,3)=__AIdeMap_3;FLD1(x2704,4)=x2701;FLD1(x2704,5)=x2702;FLD1(x2704,6)=x2703;
		       PRD1(3,x2705);FLD1(x2705,1)=x2649;FLD1(x2705,2)=x2650;FLD1(x2705,3)=__AOptimEval_34;
		       x2706=_ASeqReduce_3(__AOptimEval_91,x2704,x2687);
		       x2708=_AOptimEval_24(x2706,x2705,x2694);
		       {OBJ x2712=FLD1(x2708.c1,3);
			COPY(x2712,1);
			CPCLS(__AOptimEval_90,1);
			{OBJ x2714;TUP2 x2715;
			 x2714=_ASeqReduce_3(__AOptimEval_90,x2712,x2687);
			 x2715=_AOptimEval_52(x1,x2708.c1,x2631,x2689,x2708.c2);
			 {OBJ x2717;OBJ x2718;
			  if(EXPRD(x2715.c1,1)){
			   *p2=x2715.c2;
			   RSOME(x2715.c1,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=x2714;
			  }else{
			   x2717=FLD1(x2715.c1,1);x2718=FLD1(x2715.c1,2);COPY(x2718,1);
			   *p2=x2715.c2;
			   FRPRD(x2715.c1,1);PRD1(3,*p1);FLD1(*p1,1)=x2717;FLD1(*p1,2)=x2718;FLD1(*p1,3)=x2714;}}}}}}
		    }else{
		     FREE(x2650,1);
		     FREE(x2687,1);
		     {TUP2 x2722;
		      x2722=_AOptimEval_52(x1,x2633.c1,x2631,x2689,x2694);
		      {OBJ x2724;OBJ x2725;
		       if(EXPRD(x2722.c1,1)){
			*p2=x2722.c2;
			RSOME(x2722.c1,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=x2653;
		       }else{
			x2724=FLD1(x2722.c1,1);x2725=FLD1(x2722.c1,2);COPY(x2725,1);
			*p2=x2722.c2;
			FRPRD(x2722.c1,1);PRD1(3,*p1);FLD1(*p1,1)=x2724;FLD1(*p1,2)=x2725;FLD1(*p1,3)=x2653;}}}}}}
		 }else{
		  HLT("Ac at <unknown> : undefined selection discr\'Ac:exp->exp");}}}
	      }else{
	       HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}}}}}}}
      }else{
       COPY(x2631,1);
       CPCLS(__APair_4,1);
       {OBJ x2639;OBJ x2640;
	x2639=_ASeqMap_3(__APair_4,x2633.c3);
	PRD(3,5,x2640);FLD(x2640,1)=x2631;FLD(x2640,2)=x2639;FLD(x2640,3)=x2633.c4;
	{OBJ x2641;OBJ x2642;OBJ x2644;OBJ x2645;OBJ x2646;FLAG x_x1=EXPRD(x1,1);
	 if(x_x1){
	 }else{
	  x2641=FLD1(x1,1);x2642=FLD1(x1,2);x2644=FLD1(x1,4);x2645=FLD1(x1,5);x2646=FLD1(x1,6);CPPRD(x2641,1);CPPRD(x2642,1);COPY(x2644,1);COPY(x2645,1);COPY(x2646,1);}
	 COPY(__AIdeMap_3,1);
	 {OBJ x2647;OBJ x2648;
	  if(x_x1){
	   RSOME(x1,x2647);FREE(FLD1(x2647,3),1);FLD1(x2647,3)=__AIdeMap_3;
	  }else{
	   FRPRD(x1,1);PRD1(6,x2647);FLD1(x2647,1)=x2641;FLD1(x2647,2)=x2642;FLD1(x2647,3)=__AIdeMap_3;FLD1(x2647,4)=x2644;FLD1(x2647,5)=x2645;FLD1(x2647,6)=x2646;}
	  PRD(3,5,x2648);FLD(x2648,1)=x2631;FLD(x2648,2)=x2633.c2;FLD(x2648,3)=x2640;
	  x1=x2647;x2=x2633.c1;x3=x2648;continue;}}}}}}break;
   case 6:
    {OBJ x2729=FLD(x3,2);OBJ x2730=FLD(x3,3);OBJ x2731=FLD(x3,4);
     CPPRD(x2729,1);COPY(x2730,1);CPPRD(x2731,1);
     CPPRD(x1,1);
     {OBJ x2732;TUP2 x2734;
      x2732=_AAc_50(x3);
      x2734=_AOptimEval_24(x1,x2,x2729);
      if(ISTGPRD(x2734.c2,0)){
       FRPRD(x1,1);
       FREE(x2730,1);
       FREE(x2732,1);
       {OBJ x2737;OBJ x2738;
	x2737=_AAc_50(x2734.c2);
	x2738=_AAc_50(x2731);
	{OBJ x2739;OBJ x2740;FLAG x_x2734_c1=EXPRD(x2734.c1,1);
	 if(x_x2734_c1){
	 }else{
	  x2739=FLD1(x2734.c1,1);x2740=FLD1(x2734.c1,2);COPY(x2740,1);}
	 {OBJ x2742;OBJ x2748;OBJ x2750;
	  if(x_x2734_c1){
	   RSOME(x2734.c1,x2742);FREE(FLD1(x2742,3),1);FLD1(x2742,3)=__AOptimEval_6;
	  }else{
	   FRPRD(x2734.c1,1);PRD1(3,x2742);FLD1(x2742,1)=x2739;FLD1(x2742,2)=x2740;FLD1(x2742,3)=__AOptimEval_6;}
	  if(ISPRM(x2738)){
	   *p1=x2742;
	   x2748=__ATypeAn_52;
	  }else{
	   {OBJ x2743=FLD1(x2738,1);
	    if(EXPRD(x2738,1)){
	     *p1=x2742;x2748=x2743;
	     FLD1(x2738,1)=NIL;DSPRD(x2738);
	    }else{
	     COPY(x2743,1);
	     *p1=x2742;x2748=x2743;
	     FRPRD(x2738,1);}}}
	  PRD(1,0,*p2);
	  FLD(*p2,1)=_AAn_3(x2737,x2748);}}}
      }else{
       CPPRD(x1,1);
       CPPRD(x2734.c2,1);
       {OBJ x2751;
	x2751=_AOptimEval_62(x1,x2734.c2);
	if(ISPRM(x2751)){
	 CPPRD(x1,1);
	 CPPRD(x2734.c2,1);
	 CPCLS(__AOptimEval_61,1);
	 {OBJ x2806;
	  x2806=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimEval_61,2))(__AOptimEval_61,x1,x2734.c2);
	  if(ISTGPRD(x2734.c2,2)){
	   {OBJ x2808=FLD(x2734.c2,2);
	    CPPRD(x2808,1);
	    {OBJ x2809;OBJ x2810;OBJ x2811=FLD1(x2734.c1,3);FLAG x_x2734_c1=EXPRD(x2734.c1,1);
	     if(x_x2734_c1){
	     }else{
	      x2809=FLD1(x2734.c1,1);x2810=FLD1(x2734.c1,2);COPY(x2810,1);COPY(x2811,1);}
	     {OBJ x2812;
	      if(x_x2734_c1){
	       RSOME(x2734.c1,x2812);FLD1(x2812,3)=__AOptimEval_6;
	      }else{
	       FRPRD(x2734.c1,1);PRD1(3,x2812);FLD1(x2812,1)=x2809;FLD1(x2812,2)=x2810;FLD1(x2812,3)=__AOptimEval_6;}
	      {OBJ x2813=FLD1(x1,1);OBJ x2814=FLD1(x1,2);OBJ x2815=FLD1(x1,3);OBJ x2816=FLD1(x1,4);OBJ x2817=FLD1(x1,5);OBJ x2818=FLD1(x1,6);
	       CPPRD(x2813,1);CPPRD(x2814,1);COPY(x2815,1);COPY(x2816,1);COPY(x2817,2);COPY(x2818,1);
	       CPPRD(x2808,1);
	       CPCLS(__AIde_14,1);
	       {OBJ x2819;OBJ x2820;OBJ x2824;OBJ x2826;OBJ x2828;OBJ x2829;OBJ x2830;OBJ x2831;OBJ x2832;
		x2819=_AMap_20(__AIde_14,x2808,x2817);
		if(ISTGPRM(x2819,1)){
		 CPPRD(x2808,1);
		 COPY(x2817,1);
		 CPCLS(__AIde_14,1);
		 x2820=_AMap_16(__AIde_14,x2817,x2808);
		}else{
		 COPY(__AIdeSet_2,1);
		 x2820=__AIdeSet_2;}
		if(ISPRM(x2820)){
		 x2824=__ABUILTIN_5;
		}else{
		 x2824=__ABUILTIN_3;}
		if(ISTGPRM(x2824,1)){
		 x2826=x2730;
		 CPPRD(x2808,1);
		 CPCLS(__AOptimEval_93,1);
		 CPCLS(__AIde_14,1);
		}else{
		 CPPRD(x2808,1);
		 COPY(x2820,1);
		 CPCLS(__AOptimEval_92,1);
		 CPCLS(__AOptimEval_93,1);
		 CPCLS(__AIde_14,1);
		 {OBJ x2825;
		  x2825=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_92,1))(__AOptimEval_92,x2820);
		  x2826=_ASeqFilter_2(x2825,x2730);}}
		COPY(x2826,1);
		x2828=_ASeqReduce_3(__AOptimEval_93,x2820,x2826);
		x2829=_AMap_31(__AIde_14,x2808,x2828,x2817);
		PRD1(6,x2830);FLD1(x2830,1)=x2813;FLD1(x2830,2)=x2814;FLD1(x2830,3)=x2815;FLD1(x2830,4)=x2816;FLD1(x2830,5)=x2829;FLD1(x2830,6)=x2818;
		{TUP2 t=_ASeqMapEnv_4(x2806,x2812,x2826);
		 x2831=t.c1;
		 x2832=t.c2;}
		{OBJ x2833;OBJ x2834;OBJ x2835=FLD1(x2831,3);FLAG x_x2831=EXPRD(x2831,1);
		 if(x_x2831){
		 }else{
		  x2833=FLD1(x2831,1);x2834=FLD1(x2831,2);COPY(x2834,1);COPY(x2835,1);}
		 COPY(__AOptimEval_34,1);
		 {OBJ x2836;TUP2 x2838;
		  if(x_x2831){
		   RSOME(x2831,x2836);FLD1(x2836,3)=__AOptimEval_34;
		  }else{
		   FRPRD(x2831,1);PRD1(3,x2836);FLD1(x2836,1)=x2833;FLD1(x2836,2)=x2834;FLD1(x2836,3)=__AOptimEval_34;}
		  x2838=_AOptimEval_24(x2830,x2836,x2731);
		  {OBJ x2840;OBJ x2841;OBJ x2842=FLD1(x2838.c1,3);FLAG x_x2838_c1=EXPRD(x2838.c1,1);
		   if(x_x2838_c1){
		   }else{
		    x2840=FLD1(x2838.c1,1);x2841=FLD1(x2838.c1,2);COPY(x2841,1);COPY(x2842,1);}
		   {OBJ x2843;OBJ x2844;OBJ x2845;OBJ x2846;
		    x2843=_AOptimEval_38(x2835,x2842);
		    x2844=_AOptimEval_36(x2811,x2843);
		    x2845=_AOptimEval_35(x2808,x2844);
		    if(x_x2838_c1){
		     RSOME(x2838.c1,x2846);FLD1(x2846,3)=x2845;
		    }else{
		     FRPRD(x2838.c1,1);PRD1(3,x2846);FLD1(x2846,1)=x2840;FLD1(x2846,2)=x2841;FLD1(x2846,3)=x2845;}
		    {TUP2 t=_AOptimEval_63(x1,x2846,x2732,x2734.c2,x2832,x2838.c2);
		     *p1=t.c1;
		     *p2=t.c2;}}}}}}}}}}
	  }else{
	   HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
	}else{
	 {OBJ x2752=FLD1(x2751,1);
	  if(EXPRD(x2751,1)){
	   DSPRDF(x2751);
	  }else{
	   CPPRD(x2752,1);
	   FRPRD(x2751,1);}
	  FREE(x2732,1);
	  if(ISTGPRD(x2752,3)){
	   {OBJ x2754=FLD(x2752,2);OBJ x2755=FLD(x2752,3);
	    CPPRD(x2754,1);COPY(x2755,1);
	    if(ISTGPRD(x2754,2)){
	     {OBJ x2757=FLD(x2754,2);
	      CPPRD(x2757,1);
	      if(EXPRD(x2754,1)){
	       DSPRD(x2754);
	      }else{
	       DCPRD(x2754,1);}
	      CPCLS(__AOptimEval_60,1);
	      {OBJ x2759;OBJ x2760;
	       x2759=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_60,1))(__AOptimEval_60,x2757);
	       x2760=_ASeq_41(x2759,x2730);
	       if(ISPRM(x2760)){
		FRPRD(x2734.c2,1);
		if(EXPRD(x2752,1)){
		 DSPRD(x2752);
		}else{
		 DCPRD(x2752,1);}
		FREE(x2755,1);
		x2=x2734.c1;x3=x2731;continue;
	       }else{
		{OBJ x2761=FLD1(x2760,1);
		 if(EXPRD(x2760,1)){
		  DSPRDF(x2760);
		 }else{
		  CPPRD(x2761,1);
		  FRPRD(x2760,1);}
		 FRPRD(x2731,1);
		 {OBJ x2762=FLD1(x1,1);OBJ x2763=FLD1(x1,2);OBJ x2764=FLD1(x1,3);OBJ x2765=FLD1(x1,4);OBJ x2766=FLD1(x1,5);OBJ x2767=FLD1(x1,6);FLAG x_x1=EXPRD(x1,1);
		  if(x_x1){
		  }else{
		   CPPRD(x2762,1);CPPRD(x2763,1);COPY(x2764,1);COPY(x2765,1);COPY(x2766,1);COPY(x2767,1);}
		  {OBJ x2770;
		   if(ISTGPRD(x2734.c2,2)){
		    x2770=__ABUILTIN_5;
		   }else{
		    x2770=__ABUILTIN_3;}
		   {OBJ x2772=FLD1(x2761,2);OBJ x2773=FLD1(x2761,3);
		    if(EXPRD(x2761,1)){
		     FRPRD(FLD1(x2761,1),1);DSPRDF(x2761);
		    }else{
		     COPY(x2772,1);CPPRD(x2773,1);
		     FRPRD(x2761,1);}
		    {OBJ x2776;OBJ x2777;OBJ x2778;OBJ x2780;
		     if(ISTGPRM(x2770,1)){
		      if(ISTGPRD(x2734.c2,2)){
		       {OBJ x2775=FLD(x2734.c2,2);
			if(EXPRD(x2734.c2,1)){
			 FREE(FLD(x2734.c2,1),1);DSPRDF(x2734.c2);
			}else{
			 CPPRD(x2775,1);
			 FRPRD(x2734.c2,1);}
			CPCLS(__AAc_21,1);
			CPCLS(__AIde_14,2);
			x2776=_AMap_31(__AIde_14,x2775,x2752,x2765);}
		      }else{
		       HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
		     }else{
		      x2776=x2765;
		      FRPRD(x2734.c2,1);
		      if(EXPRD(x2752,1)){
		       DSPRD(x2752);
		      }else{
		       DCPRD(x2752,1);}
		      CPCLS(__AAc_21,1);
		      CPCLS(__AIde_14,1);}
		     x2777=_ASeqMap_3(__AAc_21,x2772);
		     x2778=_AMap_10(__AIde_14,x2764,x2777,x2755);
		     if(x_x1){
		      RSOME(x1,x2780);FLD1(x2780,3)=x2778;FLD1(x2780,4)=x2776;
		     }else{
		      FRPRD(x1,1);PRD1(6,x2780);FLD1(x2780,1)=x2762;FLD1(x2780,2)=x2763;FLD1(x2780,3)=x2778;FLD1(x2780,4)=x2776;FLD1(x2780,5)=x2766;FLD1(x2780,6)=x2767;}
		     x1=x2780;x2=x2734.c1;x3=x2773;continue;}}}}}}}}
	    }else{
	     HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
	  }else{
	   if(ISTGPRD(x2752,2)){
	    {OBJ x2782=FLD(x2752,2);
	     CPPRD(x2782,1);
	     CPCLS(__AOptimEval_60,1);
	     {OBJ x2784;OBJ x2785;
	      x2784=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_60,1))(__AOptimEval_60,x2782);
	      x2785=_ASeq_41(x2784,x2730);
	      if(ISPRM(x2785)){
	       FRPRD(x2734.c2,1);
	       if(EXPRD(x2752,1)){
		DSPRD(x2752);
	       }else{
		DCPRD(x2752,1);}
	       x2=x2734.c1;x3=x2731;continue;
	      }else{
	       {OBJ x2786=FLD1(x2785,1);
		if(EXPRD(x2785,1)){
		 DSPRDF(x2785);
		}else{
		 CPPRD(x2786,1);
		 FRPRD(x2785,1);}
		FRPRD(x2731,1);
		{OBJ x2787=FLD1(x1,1);OBJ x2788=FLD1(x1,2);OBJ x2789=FLD1(x1,3);OBJ x2790=FLD1(x1,4);OBJ x2791=FLD1(x1,5);OBJ x2792=FLD1(x1,6);FLAG x_x1=EXPRD(x1,1);
		 if(x_x1){
		 }else{
		  CPPRD(x2787,1);CPPRD(x2788,1);COPY(x2789,1);COPY(x2790,1);COPY(x2791,1);COPY(x2792,1);}
		 {OBJ x2795;
		  if(ISTGPRD(x2734.c2,2)){
		   x2795=__ABUILTIN_5;
		  }else{
		   x2795=__ABUILTIN_3;}
		  {OBJ x2797=FLD1(x2786,2);OBJ x2798=FLD1(x2786,3);
		   if(EXPRD(x2786,1)){
		    FRPRD(FLD1(x2786,1),1);DSPRDF(x2786);
		   }else{
		    COPY(x2797,1);CPPRD(x2798,1);
		    FRPRD(x2786,1);}
		   {OBJ x2801;OBJ x2802;OBJ x2803;OBJ x2805;
		    if(ISTGPRM(x2795,1)){
		     if(ISTGPRD(x2734.c2,2)){
		      {OBJ x2800=FLD(x2734.c2,2);
		       if(EXPRD(x2734.c2,1)){
			FREE(FLD(x2734.c2,1),1);DSPRDF(x2734.c2);
		       }else{
			CPPRD(x2800,1);
			FRPRD(x2734.c2,1);}
		       CPCLS(__AAc_21,1);
		       CPCLS(__AIde_14,2);
		       x2801=_AMap_31(__AIde_14,x2800,x2752,x2790);}
		     }else{
		      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
		    }else{
		     x2801=x2790;
		     FRPRD(x2734.c2,1);
		     if(EXPRD(x2752,1)){
		      DSPRD(x2752);
		     }else{
		      DCPRD(x2752,1);}
		     CPCLS(__AAc_21,1);
		     CPCLS(__AIde_14,1);}
		    x2802=_ASeqMap_3(__AAc_21,x2797);
		    x2803=_AMap_10(__AIde_14,x2789,x2802,__ASeq_6);
		    if(x_x1){
		     RSOME(x1,x2805);FLD1(x2805,3)=x2803;FLD1(x2805,4)=x2801;
		    }else{
		     FRPRD(x1,1);PRD1(6,x2805);FLD1(x2805,1)=x2787;FLD1(x2805,2)=x2788;FLD1(x2805,3)=x2803;FLD1(x2805,4)=x2801;FLD1(x2805,5)=x2791;FLD1(x2805,6)=x2792;}
		    x1=x2805;x2=x2734.c1;x3=x2798;continue;}}}}}}}}
	   }else{
	    HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}}}}}}break;
   case 3:
    {OBJ x2848=FLD(x3,2);OBJ x2849=FLD(x3,3);
     CPPRD(x2848,1);COPY(x2849,1);
     CPPRD(x1,1);
     {OBJ x2850;TUP2 x2852;OBJ x2856;OBJ x2854;OBJ x2858;OBJ x2859;
      x2850=_AAc_50(x3);
      x2852=_AOptimEval_24(x1,x2,x2848);
      if(ISTGPRD(x2852.c2,0)){
       CPCLS(__AOptimEval_24,1);
       x2856=__ABUILTIN_5;
      }else{
       CPCLS(__AOptimEval_24,1);
       x2856=__ABUILTIN_3;}
      x2854=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_24,1))(__AOptimEval_24,x1);
      {TUP2 t=_ASeqMapEnv_4(x2854,x2852.c1,x2849);
       x2858=t.c1;
       x2859=t.c2;}
      if(ISTGPRM(x2856,1)){
       FREE(x2850,1);
       FREE(x2859,1);
       {OBJ x2860;OBJ x2861;
	if(EXPRD(x2858,1)){
	 *p2=x2852.c2;
	 RSOME(x2858,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=__AOptimEval_6;
	}else{
	 x2860=FLD1(x2858,1);x2861=FLD1(x2858,2);COPY(x2861,1);
	 *p2=x2852.c2;
	 FRPRD(x2858,1);PRD1(3,*p1);FLD1(*p1,1)=x2860;FLD1(*p1,2)=x2861;FLD1(*p1,3)=__AOptimEval_6;}}
      }else{
       COPY(x2859,1);
       CPCLS(__AAc_75,1);
       {OBJ x2864;
	x2864=_ASeq_41(__AAc_75,x2859);
	if(ISPRM(x2864)){
	 *p1=x2858;
	 PRD(3,3,*p2);FLD(*p2,1)=x2850;FLD(*p2,2)=x2852.c2;FLD(*p2,3)=x2859;
	}else{
	 {OBJ x2865=FLD1(x2864,1);
	  if(EXPRD(x2864,1)){
	   DSPRDF(x2864);
	  }else{
	   CPPRD(x2865,1);
	   FRPRD(x2864,1);}
	  FREE(x2850,1);
	  FRPRD(x2852.c2,1);
	  FREE(x2859,1);
	  {OBJ x2866;OBJ x2867;
	   if(EXPRD(x2858,1)){
	    *p2=x2865;
	    RSOME(x2858,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=__AOptimEval_6;
	   }else{
	    x2866=FLD1(x2858,1);x2867=FLD1(x2858,2);COPY(x2867,1);
	    *p2=x2865;
	    FRPRD(x2858,1);PRD1(3,*p1);FLD1(*p1,1)=x2866;FLD1(*p1,2)=x2867;FLD1(*p1,3)=__AOptimEval_6;}}}}}}}}break;
   case 0:
    FRPRD(x1,1);
    {OBJ x2872;OBJ x2873;FLAG x_x2=EXPRD(x2,1);
     if(x_x2){
     }else{
      x2872=FLD1(x2,1);x2873=FLD1(x2,2);COPY(x2873,1);}
     if(x_x2){
      RSOME(x2,*p1);FREE(FLD1(*p1,3),1);FLD1(*p1,3)=__AOptimEval_6;
     }else{
      FRPRD(x2,1);PRD1(3,*p1);FLD1(*p1,1)=x2872;FLD1(*p1,2)=x2873;FLD1(*p1,3)=__AOptimEval_6;}
     *p2=x3;}break;
   case 1:
    FRPRD(x1,1);
    *p1=x2;*p2=x3;break;
   default: 
    {OBJ x2585=FLD(x3,2);
     CPPRD(x2585,1);
     {OBJ x2588=FLD1(x1,3);
      if(EXPRD(x1,1)){
       COPY(x2588,1);
       FLD1(x1,3)=NIL;DSPRD(x1);
      }else{
       COPY(x2588,2);
       FRPRD(x1,1);}
      CPPRD(x2585,1);
      CPCLS(__AIde_14,1);
      {OBJ x2592;
       x2592=_AMap_20(__AIde_14,x2585,x2588);
       if(ISTGPRM(x2592,1)){
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	CPCLS(__AIde_14,1);
	*p2=_AMap_16(__AIde_14,x2588,x2585);
	*p1=x2;
       }else{
	FREE(x2588,1);
	if(ISTGPRD(x2585,0)){
	 {OBJ x2596;OBJ x2597=FLD1(x2,2);OBJ x2598;FLAG x_x2=EXPRD(x2,1);
	  if(x_x2){
	  }else{
	   x2596=FLD1(x2,1);x2598=FLD1(x2,3);COPY(x2597,1);COPY(x2598,1);}
	  CPCLS(__AIde_14,1);
	  {OBJ x2599;
	   x2599=_ABSTree_57(__AIde_14,x2585,x2597);
	   if(x_x2){
	    RSOME(x2,*p1);FLD1(*p1,2)=x2599;
	   }else{
	    FRPRD(x2,1);PRD1(3,*p1);FLD1(*p1,1)=x2596;FLD1(*p1,2)=x2599;FLD1(*p1,3)=x2598;}
	   *p2=x3;}}
	}else{
	 if(EXPRD(x2585,1)){
	  DSPRDF(x2585);
	 }else{
	  DCPRD(x2585,1);}
	 *p1=x2;*p2=x3;}}}}}}
  break;}
 return r;}
extern OBJ _AOptimEval_24_c(OBJ x1,OBJ x2,OBJ x3) /* eval */
{OBJ r;
 {TUP2 t=_AOptimEval_24(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_25(OBJ x1,OBJ x2) /* setSubs */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x48;OBJ x49;OBJ x50;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,3),1);FLD1(r,3)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x48=FLD1(x1,4);x49=FLD1(x1,5);x50=FLD1(x1,6);CPPRD(x45,1);CPPRD(x46,1);COPY(x48,1);COPY(x49,1);COPY(x50,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x2;FLD1(r,4)=x48;FLD1(r,5)=x49;FLD1(r,6)=x50;}}
 return r;}

extern OBJ _AOptimEval_26(OBJ x1,OBJ x2) /* setEqu */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x47;OBJ x49;OBJ x50;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,4),1);FLD1(r,4)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x47=FLD1(x1,3);x49=FLD1(x1,5);x50=FLD1(x1,6);CPPRD(x45,1);CPPRD(x46,1);COPY(x47,1);COPY(x49,1);COPY(x50,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x47;FLD1(r,4)=x2;FLD1(r,5)=x49;FLD1(r,6)=x50;}}
 return r;}

extern OBJ _AOptimEval_27(OBJ x1,OBJ x2) /* setNoMatch */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x47;OBJ x48;OBJ x50;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,5),1);FLD1(r,5)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x47=FLD1(x1,3);x48=FLD1(x1,4);x50=FLD1(x1,6);CPPRD(x45,1);CPPRD(x46,1);COPY(x47,1);COPY(x48,1);COPY(x50,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x47;FLD1(r,4)=x48;FLD1(r,5)=x2;FLD1(r,6)=x50;}}
 return r;}

extern OBJ _AOptimEval_28(OBJ x1,OBJ x2) /* setTypes */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x47;OBJ x48;OBJ x49;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,6),1);FLD1(r,6)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x47=FLD1(x1,3);x48=FLD1(x1,4);x49=FLD1(x1,5);CPPRD(x45,1);CPPRD(x46,1);COPY(x47,1);COPY(x48,1);COPY(x49,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x47;FLD1(r,4)=x48;FLD1(r,5)=x49;FLD1(r,6)=x2;}}
 return r;}

extern OBJ _AOptimEval_29(OBJ x1,OBJ x2) /* setIdeCnt */
{OBJ r;
 {OBJ x16;OBJ x17;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FLD1(r,1)=x2;
  }else{
   x16=FLD1(x1,2);x17=FLD1(x1,3);COPY(x16,1);COPY(x17,1);
   FRPRD(x1,1);PRD1(3,r);FLD1(r,1)=x2;FLD1(r,2)=x16;FLD1(r,3)=x17;}}
 return r;}

extern OBJ _AOptimEval_30(OBJ x1,OBJ x2) /* setApplied */
{OBJ r;
 {OBJ x15;OBJ x17;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,2),1);FLD1(r,2)=x2;
  }else{
   x15=FLD1(x1,1);x17=FLD1(x1,3);COPY(x17,1);
   FRPRD(x1,1);PRD1(3,r);FLD1(r,1)=x15;FLD1(r,2)=x2;FLD1(r,3)=x17;}}
 return r;}

extern OBJ _AOptimEval_31(OBJ x1,OBJ x2) /* setDiscrs */
{OBJ r;
 {OBJ x15;OBJ x16;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,3),1);FLD1(r,3)=x2;
  }else{
   x15=FLD1(x1,1);x16=FLD1(x1,2);COPY(x16,1);
   FRPRD(x1,1);PRD1(3,r);FLD1(r,1)=x15;FLD1(r,2)=x16;FLD1(r,3)=x2;}}
 return r;}

extern TUP2 _AOptimEval_32(OBJ x1) /* newIde */
{TUP2 r;
 {OBJ x17=FLD1(x1,1);OBJ x18;OBJ x19;
  if(EXPRD(x1,1)){
   {
    PRDF(1,1,r.c2);FLD(r.c2,1)=x17;
    RSOME(x1,r.c1);
    ANat_2(x17,FLD1(r.c1,1));}
  }else{
   x18=FLD1(x1,2);x19=FLD1(x1,3);COPY(x18,1);COPY(x19,1);
   {
    PRDF(1,1,r.c2);FLD(r.c2,1)=x17;
    FRPRD(x1,1);PRD1(3,r.c1);FLD1(r.c1,2)=x18;FLD1(r.c1,3)=x19;
    ANat_2(x17,FLD1(r.c1,1));}}}
 return r;}
extern OBJ _AOptimEval_32_c(OBJ x1) /* newIde */
{OBJ r;
 {TUP2 t=_AOptimEval_32(x1);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AOptimEval_33(OBJ x1,OBJ x2) /* rename */
{TUP2 r;
 {OBJ x4;
  x4=_AAc_22(x2);
  PRD(2,0,r.c2);FLD(r.c2,1)=x4;
  {TUP2 t=_AOptimEval_32(x1);
   r.c1=t.c1;
   FLD(r.c2,2)=t.c2;}}
 return r;}
extern OBJ _AOptimEval_33_c(OBJ x1,OBJ x2) /* rename */
{OBJ r;
 {TUP2 t=_AOptimEval_33(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_35(OBJ x1,OBJ x2) /* incl */
{OBJ r;
 if(ISPRM(x2)){
  FRPRD(x1,1);
  r=__AOptimEval_6;
 }else{
  {OBJ x10=FLD1(x2,1);
   if(EXPRD(x2,1)){
    CPCLS(__AIde_14,1);
    {
     RSOME(x2,r);
     FLD1(r,1)=_ABag_40(__AIde_14,x1,x10);}
   }else{
    COPY(x10,1);
    CPCLS(__AIde_14,1);
    {
     FRPRD(x2,1);PRD1(1,r);
     FLD1(r,1)=_ABag_40(__AIde_14,x1,x10);}}}}
 return r;}

extern OBJ _AOptimEval_36(OBJ x1,OBJ x2) /* + */
{OBJ r;
 if(ISPRM(x1)){
  if(ISPRM(x2)){
   r=__AOptimEval_6;
  }else{
   if(EXPRD(x2,1)){
    FREE(FLD1(x2,1),1);DSPRDF(x2);
   }else{
    DCPRD(x2,1);}
   r=__AOptimEval_6;}
 }else{
  {OBJ x26=FLD1(x1,1);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    COPY(x26,1);
    FRPRD(x1,1);}
   if(ISPRM(x2)){
    FREE(x26,1);
    r=__AOptimEval_6;
   }else{
    {OBJ x27=FLD1(x2,1);
     if(EXPRD(x2,1)){
      CPCLS(__AIde_14,1);
      {
       RSOME(x2,r);
       FLD1(r,1)=_ABag_44(__AIde_14,x26,x27);}
     }else{
      COPY(x27,1);
      CPCLS(__AIde_14,1);
      {
       FRPRD(x2,1);PRD1(1,r);
       FLD1(r,1)=_ABag_44(__AIde_14,x26,x27);}}}}}}
 return r;}

extern OBJ _AOptimEval_37(OBJ x1,OBJ x2) /* - */
{OBJ r;
 if(ISPRM(x1)){
  if(ISPRM(x2)){
   COPY(__AOptimEval_34,1);
   r=__AOptimEval_34;
  }else{
   if(EXPRD(x2,1)){
    FREE(FLD1(x2,1),1);DSPRDF(x2);
   }else{
    DCPRD(x2,1);}
   r=__AOptimEval_6;}
 }else{
  {OBJ x26=FLD1(x1,1);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    COPY(x26,1);
    FRPRD(x1,1);}
   if(ISPRM(x2)){
    FREE(x26,1);
    COPY(__AOptimEval_34,1);
    r=__AOptimEval_34;
   }else{
    {OBJ x27=FLD1(x2,1);
     if(EXPRD(x2,1)){
      CPCLS(__AIde_14,1);
      {
       RSOME(x2,r);
       FLD1(r,1)=_ABag_45(__AIde_14,x26,x27);}
     }else{
      COPY(x27,1);
      CPCLS(__AIde_14,1);
      {
       FRPRD(x2,1);PRD1(1,r);
       FLD1(r,1)=_ABag_45(__AIde_14,x26,x27);}}}}}}
 return r;}

extern OBJ _AOptimEval_38(OBJ x1,OBJ x2) /* * */
{OBJ r;
 if(ISPRM(x1)){
  if(ISPRM(x2)){
   r=__AOptimEval_6;
  }else{
   r=x2;}
 }else{
  {OBJ x26=FLD1(x1,1);
   COPY(x26,1);
   if(ISPRM(x2)){
    FREE(x26,1);
    r=x1;
   }else{
    {OBJ x27=FLD1(x2,1);
     if(EXPRD(x2,1)){
      if(EXPRD(x1,1)){
       FREE(FLD1(x1,1),1);DSPRDF(x1);
      }else{
       DCPRD(x1,1);}
      CPCLS(__AIde_14,1);
      {
       RSOME(x2,r);
       FLD1(r,1)=_ABag_46(__AIde_14,x26,x27);}
     }else{
      COPY(x27,1);
      if(EXPRD(x1,1)){
       FREE(FLD1(x1,1),1);DSPRDF(x1);
      }else{
       DCPRD(x1,1);}
      CPCLS(__AIde_14,1);
      {
       FRPRD(x2,1);PRD1(1,r);
       FLD1(r,1)=_ABag_46(__AIde_14,x26,x27);}}}}}}
 return r;}

extern OBJ _AOptimEval_39(OBJ x1,OBJ x2) /* ct */
{OBJ r;
 if(ISPRM(x2)){
  FRPRD(x1,1);
  r=__ANat_54;
 }else{
  {OBJ x9=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x9,1);
    FRPRD(x2,1);}
   CPCLS(__AIde_14,1);
   r=_ABag_49(__AIde_14,x1,x9);}}
 return r;}

extern OBJ _AOptimEval_40(OBJ x1,OBJ x2) /* in */
{OBJ r;
 if(ISPRM(x2)){
  FRPRD(x1,1);
  r=__ABUILTIN_5;
 }else{
  {OBJ x9=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x9,1);
    FRPRD(x2,1);}
   CPCLS(__AIde_14,1);
   r=_ABag_48(__AIde_14,x1,x9);}}
 return r;}

extern TUP4 _AOptimEval_41(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5) /* evalBlock */
{TUP4 r;
 for(;;){
  if(ISPRM(x4)){
   FRPRD(x1,1);
   {TUP2 t=_AOptimEval_24(x2,x3,x5);
    r.c1=t.c1;
    r.c4=t.c2;}
   r.c2=__ASeq_6;r.c3=__ASeq_6;
  }else{
   {OBJ x641=FLD1(x4,1);OBJ x642=FLD1(x4,2);FLAG x_x4=EXPRD(x4,1);
    if(x_x4){
    }else{
     CPPRD(x641,1);COPY(x642,1);}
    if(ISTGPRD(x641,2)){
     {OBJ x646=FLD(x641,4);
      CPPRD(x646,1);
      {OBJ x647=FLD1(x3,1);OBJ x648=FLD1(x3,2);OBJ x649=FLD1(x3,3);FLAG x_x3=EXPRD(x3,1);
       if(x_x3){
       }else{
	COPY(x648,1);COPY(x649,1);}
       {OBJ x650=FLD1(x2,1);OBJ x651=FLD1(x2,2);OBJ x652=FLD1(x2,3);OBJ x653=FLD1(x2,4);OBJ x654=FLD1(x2,5);OBJ x655=FLD1(x2,6);
	CPPRD(x650,1);CPPRD(x651,1);COPY(x652,1);COPY(x653,1);COPY(x654,1);COPY(x655,1);
	CPPRD(x1,1);
	CPPRD(x5,1);
	CPPRD(x641,3);
	COPY(__AOptimEval_34,1);
	{OBJ x656;OBJ x657;OBJ x658;OBJ x659;TUP2 x661;OBJ x663;
	 x656=_AAc_22(x641);
	 x657=_AAc_21(x641);
	 CPPRD(x657,1);
	 x658=_AAc_20(x641);
	 if(x_x3){
	  RSOME(x3,x659);FLD1(x659,3)=__AOptimEval_34;
	 }else{
	  FRPRD(x3,1);PRD1(3,x659);FLD1(x659,1)=x647;FLD1(x659,2)=x648;FLD1(x659,3)=__AOptimEval_34;}
	 x661=_AOptimEval_24(x1,x659,x646);
	 CPPRD(x661.c2,1);
	 x663=_AOptimEval_42(x2,x657,x661.c2,x5);
	 if(ISPRM(x663)){
	  {OBJ x681;OBJ x682;OBJ x683;OBJ x684;OBJ x685;OBJ x686;OBJ x687;OBJ x688;
	   if(ISTGPRD(x661.c2,5)){
	    CPPRD(x661.c1,1);
	    CPPRD(x661.c2,1);
	    CPCLS(__AIde_14,3);
	    x681=__ABUILTIN_5;
	   }else{
	    CPPRD(x661.c1,1);
	    CPPRD(x661.c2,1);
	    CPCLS(__AIde_14,3);
	    x681=__ABUILTIN_3;}
	   x682=_ATypeAnFun_4(x641);
	   {TUP2 t=_AOptimEval_32(x661.c1);
	    x683=t.c1;
	    x684=t.c2;}
	   CPPRD(x684,3);
	   PRD(2,2,x685);FLD(x685,1)=__AAn_2;FLD(x685,2)=x684;
	   x686=_AMap_31(__AIde_14,x684,x661.c2,x653);
	   x687=_AMap_31(__AIde_14,x684,x682,x655);
	   x688=_AMap_31(__AIde_14,x657,x685,x652);
	   {OBJ x689;OBJ x690;FLAG x_x683=EXPRD(x683,1);
	    if(x_x683){
	    }else{
	     x689=FLD1(x683,1);x690=FLD1(x683,2);COPY(x690,1);}
	    {OBJ x692;OBJ x695;TUP4 x697;
	     if(x_x683){
	      RSOME(x683,x692);FREE(FLD1(x692,3),1);FLD1(x692,3)=x649;
	     }else{
	      FRPRD(x683,1);PRD1(3,x692);FLD1(x692,1)=x689;FLD1(x692,2)=x690;FLD1(x692,3)=x649;}
	     PRD1(6,x695);FLD1(x695,1)=x650;FLD1(x695,2)=x651;FLD1(x695,3)=x688;FLD1(x695,4)=x686;FLD1(x695,5)=x654;FLD1(x695,6)=x687;
	     x697=_AOptimEval_41(x1,x695,x692,x642,x5);
	     if(ISTGPRM(x681,1)){
	      FRPRD(x661.c1,1);
	      if(ISTGPRD(x661.c2,5)){
	       {OBJ x702=FLD(x661.c2,2);OBJ x703=FLD(x661.c2,3);
		if(EXPRD(x661.c2,1)){
		 r.c1=x697.c1;r.c4=x697.c4;
		 FREE(FLD(x661.c2,1),1);DSPRDF(x661.c2);
		}else{
		 COPY(x702,1);CPPRD(x703,1);
		 r.c1=x697.c1;r.c4=x697.c4;
		 FRPRD(x661.c2,1);}
		COPY(__AOptimEval_34,1);
		{OBJ x705;OBJ x706;
		 r.c2=_ASeq_26(x702,x697.c2);
		 PRD(4,2,x705);FLD(x705,1)=x656;FLD(x705,2)=x684;FLD(x705,3)=x658;FLD(x705,4)=x703;
		 if(x_x4){
		  RSOME(x4,x706);FLD1(x706,1)=__AOptimEval_34;FLD1(x706,2)=x705;
		 }else{
		  FRPRD(x4,1);PRD1(2,x706);FLD1(x706,1)=__AOptimEval_34;FLD1(x706,2)=x705;}
		 PRD1(2,r.c3);FLD1(r.c3,1)=x706;FLD1(r.c3,2)=x697.c3;}}
	      }else{
	       HLT("Ac at <unknown> : undefined selection binds\'Ac:exp->seq");}
	     }else{
	      {OBJ x710=FLD1(x661.c1,3);
	       if(EXPRD(x661.c1,1)){
		r.c1=x697.c1;r.c2=x697.c2;r.c4=x697.c4;
		FREE(FLD1(x661.c1,2),1);DSPRDF(x661.c1);
	       }else{
		COPY(x710,1);
		r.c1=x697.c1;r.c2=x697.c2;r.c4=x697.c4;
		FRPRD(x661.c1,1);}
	       {OBJ x711;OBJ x712;
		PRD(4,2,x711);FLD(x711,1)=x656;FLD(x711,2)=x684;FLD(x711,3)=x658;FLD(x711,4)=x661.c2;
		if(x_x4){
		 RSOME(x4,x712);FLD1(x712,1)=x710;FLD1(x712,2)=x711;
		}else{
		 FRPRD(x4,1);PRD1(2,x712);FLD1(x712,1)=x710;FLD1(x712,2)=x711;}
		PRD1(2,r.c3);FLD1(r.c3,1)=x712;FLD1(r.c3,2)=x697.c3;}}}}}}
	 }else{
	  {OBJ x664=FLD1(x663,1);
	   if(EXPRD(x663,1)){
	    if(x_x4){
	     DSPRDF(x4);
	    }else{
	     FRPRD(x4,1);}
	    DSPRDF(x663);
	   }else{
	    CPPRD(x664,1);
	    if(x_x4){
	     DSPRDF(x4);
	    }else{
	     FRPRD(x4,1);}
	    FRPRD(x663,1);}
	   if(EXPRD(x641,1)){
	    DSPRD(x641);
	   }else{
	    DCPRD(x641,1);}
	   FREE(x656,1);
	   FRPRD(x661.c2,1);
	   {OBJ x665;OBJ x666;OBJ x667=FLD1(x661.c1,3);FLAG x_x661_c1=EXPRD(x661.c1,1);
	    if(x_x661_c1){
	    }else{
	     x665=FLD1(x661.c1,1);x666=FLD1(x661.c1,2);COPY(x666,1);COPY(x667,1);}
	    CPCLS(__AIde_14,1);
	    {OBJ x668;OBJ x669;OBJ x670;OBJ x671;
	     x668=_AOptimEval_36(x667,x649);
	     if(x_x661_c1){
	      RSOME(x661.c1,x669);FLD1(x669,3)=x668;
	     }else{
	      FRPRD(x661.c1,1);PRD1(3,x669);FLD1(x669,1)=x665;FLD1(x669,2)=x666;FLD1(x669,3)=x668;}
	     x670=_AMap_31(__AIde_14,x657,x664,x652);
	     PRD1(6,x671);FLD1(x671,1)=x650;FLD1(x671,2)=x651;FLD1(x671,3)=x670;FLD1(x671,4)=x653;FLD1(x671,5)=x654;FLD1(x671,6)=x655;
	     x2=x671;x3=x669;x4=x642;continue;}}}}}}}}
    }else{
     HLT("OptimEval at <286,7-15> : missing else in evalBlock\'OptimEval:inh**inh**thr**seq**exp->thr**seq**seq**exp");}}}
  break;}
 return r;}
extern OBJ _AOptimEval_41_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* evalBlock */
{OBJ r;
 {TUP4 t=_AOptimEval_41(x1,x2,x3,x4,x5);
  PRD1(4,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;}
 return r;}

extern OBJ _AOptimEval_42(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* substitution */
{OBJ r;
 CPPRD(x1,1);
 CPPRD(x3,1);
 {OBJ x5;
  x5=_AOptimEval_43(x1,x2,x3,x4);
  if(ISTGPRM(x5,1)){
   FRPRD(x1,1);
   PRD1(1,r);FLD1(r,1)=x3;
  }else{
   {OBJ x9;OBJ x41;
    if(ISTGPRD(x3,3)){
     x9=__ABUILTIN_5;
    }else{
     x9=__ABUILTIN_3;}
    if(ISTGPRM(x9,1)){
     if(ISTGPRD(x3,3)){
      {OBJ x29=FLD(x3,2);OBJ x30=FLD(x3,3);
       CPPRD(x29,1);COPY(x30,1);
       {OBJ x31;
	x31=_AAcFun_6(x29);
	if(ISTGPRM(x31,1)){
	 {OBJ x34;OBJ x35;
	  if(ISPRM(x30)){
	   HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	  }else{
	   {OBJ x32=FLD1(x30,1);
	    CPPRD(x32,1);
	    x34=x32;}}
	  x35=_AAcFun_5(x34);
	  if(ISTGPRM(x35,1)){
	   {OBJ x38;
	    if(ISPRM(x30)){
	     HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	    }else{
	     {OBJ x37=FLD1(x30,2);
	      COPY(x37,1);
	      x38=x37;
	      if(EXPRD(x30,1)){
	       DSPRD(x30);
	      }else{
	       DCPRD(x30,1);}}}
	    if(ISPRM(x38)){
	     x41=__ABUILTIN_5;
	    }else{
	     if(EXPRD(x38,1)){
	      DSPRD(x38);
	     }else{
	      DCPRD(x38,1);}
	     x41=__ABUILTIN_3;}}
	  }else{
	   FREE(x30,1);
	   x41=__ABUILTIN_3;}}
	}else{
	 FREE(x30,1);
	 x41=__ABUILTIN_3;}}}
     }else{
      HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}
    }else{
     x41=__ABUILTIN_3;}
    if(ISTGPRM(x41,1)){
     if(ISTGPRD(x3,3)){
      {OBJ x168=FLD(x3,2);OBJ x169=FLD(x3,3);
       if(EXPRD(x3,1)){
	FREE(FLD(x3,1),1);DSPRDF(x3);
       }else{
	CPPRD(x168,1);COPY(x169,1);
	FRPRD(x3,1);}
       {OBJ x216=FLD1(x1,2);OBJ x218=FLD1(x1,4);
	if(EXPRD(x1,1)){
	 FLD1(x1,2)=NIL;FLD1(x1,4)=NIL;DSPRD(x1);
	}else{
	 CPPRD(x216,1);COPY(x218,1);
	 FRPRD(x1,1);}
	if(ISTGPRD(x168,2)){
	 {OBJ x222=FLD(x168,2);
	  if(EXPRD(x168,1)){
	   FREE(FLD(x168,1),1);DSPRDF(x168);
	  }else{
	   CPPRD(x222,1);
	   FRPRD(x168,1);}
	  CPCLS(__AOptimAn_10,1);
	  {OBJ x223;OBJ x224;
	   x223=_AOptimAnFun_1(x216,x222);
	   x224=_ASeq_41(__AOptimAn_10,x223);
	   if(ISPRM(x224)){
	    FREE(x169,1);
	    FREE(x218,1);
	    r=__AOption_5;
	   }else{
	    {OBJ x225=FLD1(x224,1);FLAG x_x224=EXPRD(x224,1);
	     if(x_x224){
	     }else{
	      COPY(x225,1);}
	     {OBJ x228;
	      if(ISPRM(x169)){
	       HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	      }else{
	       {OBJ x226=FLD1(x169,1);
		if(EXPRD(x169,1)){
		 x228=x226;
		 FREE(FLD1(x169,2),1);DSPRDF(x169);
		}else{
		 CPPRD(x226,1);
		 x228=x226;
		 FRPRD(x169,1);}}}
	      if(ISTGPRD(x228,2)){
	       {OBJ x230=FLD(x228,2);
		if(EXPRD(x228,1)){
		 FREE(FLD(x228,1),1);DSPRDF(x228);
		}else{
		 CPPRD(x230,1);
		 FRPRD(x228,1);}
		CPCLS(__AIde_14,1);
		{OBJ x231;OBJ x233;OBJ x243;
		 x231=_AMap_33(__AIde_14,x218,x230);
		 if(ISPRM(x231)){
		  x233=__ABUILTIN_3;
		 }else{
		  x233=__ABUILTIN_5;}
		 if(ISTGPRM(x233,1)){
		  {OBJ x235;
		   if(ISPRM(x231)){
		    HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
		   }else{
		    {OBJ x234=FLD1(x231,1);
		     CPPRD(x234,1);
		     x235=x234;}}
		   if(ISTGPRD(x235,3)){
		    {OBJ x237=FLD(x235,2);
		     if(EXPRD(x235,1)){
		      CPPRD(x237,1);
		      FLD(x235,2)=NIL;DSPRD(x235);
		     }else{
		      CPPRD(x237,2);
		      FRPRD(x235,1);}
		     {OBJ x239;
		      x239=_AAcFun_6(x237);
		      if(ISTGPRM(x239,1)){
		       if(ISPRD(x225)&&(ISTGPRD(x225,0))){
			{OBJ x240=FLD(x225,1);
			 if(EXPRD(x225,1)){
			  DSPRDF(x225);
			 }else{
			  CPPRD(x240,1);
			  FRPRD(x225,1);}
			 if(ISTGPRD(x237,2)){
			  {OBJ x242=FLD(x237,2);
			   if(EXPRD(x237,1)){
			    FREE(FLD(x237,1),1);DSPRDF(x237);
			   }else{
			    CPPRD(x242,1);
			    FRPRD(x237,1);}
			   x243=_AIde_13(x242,x240);}
			 }else{
			  HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
		       }else{
			HLT("OptimAn at <unknown> : undefined selection fun\'OptimAn:prop->ide");}
		      }else{
		       FREE(x225,1);
		       FRPRD(x237,1);
		       x243=__ABUILTIN_3;}}}
		   }else{
		    FREE(x225,1);
		    FRPRD(x235,1);
		    x243=__ABUILTIN_3;}}
		 }else{
		  FREE(x225,1);
		  x243=__ABUILTIN_3;}
		 if(ISTGPRM(x243,1)){
		  {OBJ x245;
		   if(ISPRM(x231)){
		    HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
		   }else{
		    {OBJ x244=FLD1(x231,1);
		     if(EXPRD(x231,1)){
		      x245=x244;
		      DSPRDF(x231);
		     }else{
		      CPPRD(x244,1);
		      x245=x244;
		      FRPRD(x231,1);}}}
		   if(ISTGPRD(x245,3)){
		    {OBJ x248=FLD(x245,3);
		     if(EXPRD(x245,1)){
		      FLD(x245,3)=NIL;DSPRD(x245);
		     }else{
		      COPY(x248,1);
		      FRPRD(x245,1);}
		     {OBJ x251;
		      if(ISPRM(x248)){
		       HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
		      }else{
		       {OBJ x249=FLD1(x248,1);
			if(EXPRD(x248,1)){
			 x251=x249;
			 FREE(FLD1(x248,2),1);DSPRDF(x248);
			}else{
			 CPPRD(x249,1);
			 x251=x249;
			 FRPRD(x248,1);}}}
		      if(x_x224){
		       RSOME(x224,r);FLD1(r,1)=x251;
		      }else{
		       FRPRD(x224,1);PRD1(1,r);FLD1(r,1)=x251;}}}
		   }else{
		    HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}}
		 }else{
		  if(x_x224){
		   DSPRDF(x224);
		  }else{
		   FRPRD(x224,1);}
		  FREE(x231,1);
		  r=__AOption_5;}}}
	      }else{
	       HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}}}}
	}else{
	 HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}
     }else{
      HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}
    }else{
     FRPRD(x1,1);
     FRPRD(x3,1);
     r=__AOption_5;}}}}
 return r;}

extern OBJ _AOptimEval_43(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* shallSubstitute? */
{OBJ r;
 FRPRD(x1,1);
 FRPRD(x2,1);
 {OBJ x5;
  x5=_AAcFun_2(x3);
  if(ISTGPRM(x5,1)){
   FRPRD(x4,1);
   r=__ABUILTIN_5;
  }else{
   {OBJ x6;
    x6=_AAcFun_2(x4);
    if(ISTGPRM(x6,1)){
     r=__ABUILTIN_5;
    }else{
     r=__ABUILTIN_3;}}}}
 return r;}

extern OBJ _AOptimEval_44(OBJ x1,OBJ x2,OBJ x3) /* shallSampleEqu? */
{OBJ r;
 FRPRD(x1,1);
 FRPRD(x2,1);
 FRPRD(x3,1);
 r=__ABUILTIN_5;
 return r;}

extern TUP2 _AOptimEval_45(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* lookupBestDistribCand */
{TUP2 r;
 r=_AOptimEval_46(x1,x2,x3,x4,__AOption_5,__ANat_5);
 return r;}
extern OBJ _AOptimEval_45_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* lookupBestDistribCand */
{OBJ r;
 {TUP2 t=_AOptimEval_45(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AOptimEval_46(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5,register OBJ x6) /* lookupBestDistribCand,1 */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x3)){
   FRPRD(x1,1);
   FREE(x2,1);
   FRPRD(x4,1);
   *p1=x5;*p2=__ASeq_6;
  }else{
   {OBJ x347=FLD1(x3,1);OBJ x348=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
    }else{
     CPPRD(x347,1);COPY(x348,1);}
    {OBJ x351=FLD1(x347,2);
     CPPRD(x351,1);
     if(ISTGPRD(x351,2)){
      {OBJ x355=FLD(x351,4);
       CPPRD(x355,1);
       if(ISTGPRD(x355,6)){
	{OBJ x357=FLD(x355,2);OBJ x358=FLD(x355,3);OBJ x359=FLD(x355,4);
	 CPPRD(x357,1);COPY(x358,1);CPPRD(x359,1);
	 if(EXPRD(x355,1)){
	  DSPRD(x355);
	 }else{
	  DCPRD(x355,1);}
	 if(ISTGPRD(x357,2)){
	  {OBJ x361=FLD(x357,2);
	   CPPRD(x361,1);
	   if(EXPRD(x357,1)){
	    DSPRD(x357);
	   }else{
	    DCPRD(x357,1);}
	   CPPRD(x1,1);
	   COPY(x358,1);
	   CPPRD(x359,1);
	   CPCLS(__AOptimEval_48,1);
	   CPCLS(__AAc_41,1);
	   {OBJ x362;OBJ x363;OBJ x364;OBJ x365;OBJ x366;OBJ x369;OBJ x367;OBJ x371;OBJ x372;OBJ x373;
	    x362=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_48,1))(__AOptimEval_48,x1);
	    x363=_AAc_21(x351);
	    x364=_ASeq_52(x358,__ANat_5);
	    x365=_ASeqMap_3(__AAc_41,x358);
	    if(x_x3){
	     RSOME(x3,x366);FLD1(x366,1)=x359;FLD1(x366,2)=x365;
	    }else{
	     FRPRD(x3,1);PRD1(2,x366);FLD1(x366,1)=x359;FLD1(x366,2)=x365;}
	    if(ISPRM(x2)){
	     x369=__ANat_54;
	    }else{
	     {OBJ x368=FLD1(x2,1);
	      COPY(x368,1);
	      CPPRD(x361,1);
	      CPCLS(__AIde_14,1);
	      x369=_ABag_49(__AIde_14,x361,x368);}}
	    x367=_ASeq_42(x362,x366);
	    if(ISTGPRM(x367,1)){
	     if(ISPRM(x2)){
	      CPPRD(x1,1);
	      CPPRD(x4,1);
	      x371=__ANat_54;
	     }else{
	      {OBJ x370=FLD1(x2,1);
	       COPY(x370,1);
	       CPPRD(x1,1);
	       CPPRD(x4,1);
	       CPPRD(x363,1);
	       CPCLS(__AIde_14,1);
	       x371=_ABag_49(__AIde_14,x363,x370);}}
	    }else{
	     CPPRD(x1,1);
	     CPPRD(x4,1);
	     x371=__ANat_5;}
	    x372=_AOptimEval_47(x1,x361,x369,x363,x371,x364,x359,x4);
	    ANat_81(x372,x6,x373);
	    if(ISTGPRM(x373,1)){
	     {OBJ x375;OBJ x376;OBJ x378;OBJ x379;
	      if(ISPRM(x5)){
	       x375=__ABUILTIN_5;
	      }else{
	       x375=__ABUILTIN_3;}
	      PRD1(1,x376);FLD1(x376,1)=x347;
	      {TUP2 t=_AOptimEval_46(x1,x2,x348,x4,x376,x372);
	       x378=t.c1;
	       x379=t.c2;}
	      if(ISTGPRM(x375,1)){
	       *p1=x378;*p2=x379;
	       FREE(x5,1);
	      }else{
	       {OBJ x381;OBJ x382;
		if(ISPRM(x5)){
		 HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
		}else{
		 {OBJ x380=FLD1(x5,1);
		  if(EXPRD(x5,1)){
		   *p1=x378;x381=x380;
		   DSPRDF(x5);
		  }else{
		   CPPRD(x380,1);
		   *p1=x378;x381=x380;
		   FRPRD(x5,1);}}}
		PRD1(2,*p2);FLD1(*p2,1)=x381;FLD1(*p2,2)=x379;}}}
	    }else{
	     {
	      PRD1(2,*p2);FLD1(*p2,1)=x347;
	      x3=x348;p2=&FLD1(*p2,2);continue;}}}}
	 }else{
	  if(EXPRD(x351,1)){
	   DSPRD(x351);
	  }else{
	   DCPRD(x351,1);}
	  FRPRD(x357,1);
	  FREE(x358,1);
	  FRPRD(x359,1);
	  {
	   if(x_x3){
	    RSOME(x3,*p2);
	   }else{
	    FRPRD(x3,1);PRD1(2,*p2);FLD1(*p2,1)=x347;}
	   x3=x348;p2=&FLD1(*p2,2);continue;}}}
       }else{
	if(EXPRD(x351,1)){
	 DSPRD(x351);
	}else{
	 DCPRD(x351,1);}
	FRPRD(x355,1);
	{
	 if(x_x3){
	  RSOME(x3,*p2);
	 }else{
	  FRPRD(x3,1);PRD1(2,*p2);FLD1(*p2,1)=x347;}
	 x3=x348;p2=&FLD1(*p2,2);continue;}}}
     }else{
      FRPRD(x351,1);
      {
       if(x_x3){
	RSOME(x3,*p2);
       }else{
	FRPRD(x3,1);PRD1(2,*p2);FLD1(*p2,1)=x347;}
       x3=x348;p2=&FLD1(*p2,2);continue;}}}}}
  break;}
 return r;}
extern OBJ _AOptimEval_46_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* lookupBestDistribCand,1 */
{OBJ r;
 {TUP2 t=_AOptimEval_46(x1,x2,x3,x4,x5,x6);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_47(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* distribWeightFun */
{OBJ r;
 FRPRD(x2,1);
 {OBJ x9;OBJ x11;
  ANat_76(x6,__ANat_8,x9);
  if(ISTGPRM(x9,1)){
   if(ISTGPRD(x7,0)){
    if(EXPRD(x7,1)){
     FREE(FLD(x7,1),1);DSPRDF(x7);
    }else{
     DCPRD(x7,1);}
    x11=__ABUILTIN_5;
   }else{
    FRPRD(x7,1);
    x11=__ABUILTIN_3;}
  }else{
   FRPRD(x7,1);
   x11=__ABUILTIN_3;}
  if(ISTGPRM(x11,1)){
   FRPRD(x1,1);
   FRPRD(x4,1);
   FRPRD(x8,1);
   r=__ANat_59;
  }else{
   {OBJ x12=FLD1(x1,1);
    if(EXPRD(x1,1)){
     FLD1(x1,1)=NIL;DSPRD(x1);
    }else{
     CPPRD(x12,1);
     FRPRD(x1,1);}
    {OBJ x18;OBJ x19;
     x18=x12;
     CPPRD(x18,1);
     x19=_APreparedOptions_16(x18);
     if(ISTGPRM(x19,1)){
      FRPRD(x4,1);
      FRPRD(x8,1);
      FRPRD(x18,1);
      r=__ANat_59;
     }else{
      {OBJ x20;
       x20=_APreparedOptions_15(x18);
       if(ISTGPRM(x20,1)){
	{OBJ x59;OBJ x66;
	 ANat_81(x5,__ANat_5,x59);
	 if(ISTGPRM(x59,1)){
	  if(ISTGPRD(x8,6)){
	   {OBJ x61=FLD(x8,2);
	    if(EXPRD(x8,1)){
	     FLD(x8,2)=NIL;DSPRD(x8);
	    }else{
	     CPPRD(x61,1);
	     FRPRD(x8,1);}
	    if(ISTGPRD(x61,2)){
	     {OBJ x65=FLD(x61,2);
	      if(EXPRD(x61,1)){
	       FREE(FLD(x61,1),1);DSPRDF(x61);
	      }else{
	       CPPRD(x65,1);
	       FRPRD(x61,1);}
	      x66=_AIde_13(x65,x4);}
	    }else{
	     FRPRD(x4,1);
	     FRPRD(x61,1);
	     x66=__ABUILTIN_3;}}
	  }else{
	   FRPRD(x4,1);
	   FRPRD(x8,1);
	   x66=__ABUILTIN_3;}
	 }else{
	  FRPRD(x4,1);
	  FRPRD(x8,1);
	  x66=__ABUILTIN_3;}
	 if(ISTGPRM(x66,1)){
	  CPCLS(__AOptimEval_73,1);
	  r=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_73,1))(__AOptimEval_73,__ABUILTIN_20);
	 }else{
	  {OBJ x67;
	   if(ISTGPRM(x59,1)){
	    ANat_81(x3,__ANat_5,x67);
	   }else{
	    x67=__ABUILTIN_3;}
	   if(ISTGPRM(x67,1)){
	    {OBJ x68;OBJ x69;OBJ x70;OBJ x71;
	     ANat_61(x6,__ANat_8,x68);
	     ANat_63(x3,__ANat_8,x69);
	     ANat_63(x5,__ANat_11,x70);
	     ANat_61(x70,x69,x71);
	     ANat_64(x71,x68,r);}
	   }else{
	    r=__ANat_5;}}}}
       }else{
	FRPRD(x4,1);
	FRPRD(x8,1);
	r=__ANat_5;}}}}}}}
 return r;}

extern OBJ _AOptimEval_48(OBJ x1,OBJ x2) /* directCons? */
{OBJ r;
 if(ISTGPRD(x2,2)){
  {OBJ x213=FLD(x2,2);
   if(EXPRD(x2,1)){
    FREE(FLD(x2,1),1);DSPRDF(x2);
   }else{
    CPPRD(x213,1);
    FRPRD(x2,1);}
   if(ISTGPRD(x213,0)){
    {OBJ x217=FLD1(x1,2);
     if(EXPRD(x1,1)){
      FLD1(x1,2)=NIL;DSPRD(x1);
     }else{
      CPPRD(x217,1);
      FRPRD(x1,1);}
     {OBJ x222;
      x222=_AAcFun_10(x217,x213);
      if(ISTGPRD(x222,3)){
       {OBJ x226=FLD(x222,4);
	if(EXPRD(x222,1)){
	 DSPRD(x222);
	}else{
	 FRPRD(x222,1);}
	ANat_76(x226,__ANat_5,r);}
      }else{
       FRPRD(x222,1);
       r=__ABUILTIN_3;}}}
   }else{
    if(EXPRD(x213,1)){
     DSPRDF(x213);
    }else{
     DCPRD(x213,1);}
    FRPRD(x1,1);
    r=__ABUILTIN_3;}}
 }else{
  if(ISTGPRD(x2,3)){
   {OBJ x229=FLD(x2,2);OBJ x230=FLD(x2,3);
    if(EXPRD(x2,1)){
     FREE(FLD(x2,1),1);DSPRDF(x2);
    }else{
     CPPRD(x229,1);COPY(x230,1);
     FRPRD(x2,1);}
    if(ISTGPRD(x229,2)){
     {OBJ x232=FLD(x229,2);
      if(EXPRD(x229,1)){
       FREE(FLD(x229,1),1);DSPRDF(x229);
      }else{
       CPPRD(x232,1);
       FRPRD(x229,1);}
      if(ISTGPRD(x232,0)){
       {OBJ x236=FLD1(x1,2);
	if(EXPRD(x1,1)){
	 FLD1(x1,2)=NIL;DSPRD(x1);
	}else{
	 CPPRD(x236,1);
	 FRPRD(x1,1);}
	{OBJ x241;
	 x241=_AAcFun_10(x236,x232);
	 if(ISTGPRD(x241,3)){
	  {OBJ x245=FLD(x241,4);
	   if(EXPRD(x241,1)){
	    DSPRD(x241);
	   }else{
	    FRPRD(x241,1);}
	   {OBJ x246;
	    x246=_ASeq_52(x230,__ANat_5);
	    ANat_76(x246,x245,r);}}
	 }else{
	  FREE(x230,1);
	  FRPRD(x241,1);
	  r=__ABUILTIN_3;}}}
      }else{
       if(EXPRD(x232,1)){
	DSPRDF(x232);
       }else{
	DCPRD(x232,1);}
       FRPRD(x1,1);
       FREE(x230,1);
       r=__ABUILTIN_3;}}
    }else{
     FRPRD(x1,1);
     FRPRD(x229,1);
     FREE(x230,1);
     r=__ABUILTIN_3;}}
  }else{
   if(ISTGPRD(x2,0)){
    if(EXPRD(x2,1)){
     FREE(FLD(x2,1),1);DSPRDF(x2);
    }else{
     DCPRD(x2,1);}
    FRPRD(x1,1);
    r=__ABUILTIN_5;
   }else{
    FRPRD(x1,1);
    FRPRD(x2,1);
    r=__ABUILTIN_3;}}}
 return r;}

extern OBJ _AOptimEval_49(OBJ x1,OBJ x2) /* directSel? */
{OBJ r;
 FRPRD(x1,1);
 if(ISTGPRD(x2,0)){
  if(EXPRD(x2,1)){
   FREE(FLD(x2,1),1);DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  r=__ABUILTIN_5;
 }else{
  if(ISTGPRD(x2,2)){
   {OBJ x30=FLD(x2,2);
    if(EXPRD(x2,1)){
     FREE(FLD(x2,1),1);DSPRDF(x2);
    }else{
     CPPRD(x30,1);
     FRPRD(x2,1);}
    if(ISTGPRD(x30,1)){
     if(EXPRD(x30,1)){
      DSPRDF(x30);
     }else{
      DCPRD(x30,1);}
     r=__ABUILTIN_5;
    }else{
     if(EXPRD(x30,1)){
      DSPRDF(x30);
     }else{
      DCPRD(x30,1);}
     r=__ABUILTIN_3;}}
  }else{
   FRPRD(x2,1);
   r=__ABUILTIN_3;}}
 return r;}

extern OBJ _AOptimEval_50(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* distribToMatch */
{OBJ r;
 {OBJ x19;OBJ x20;OBJ x21=FLD1(x5,3);
  if(EXPRD(x5,1)){
   {
    RSOME(x5,r);
    FLD1(r,3)=_AOptimEval_51(x1,x2,x3,x4,x21);}
  }else{
   x19=FLD1(x5,1);x20=FLD1(x5,2);CPPRD(x19,1);COPY(x20,1);CPPRD(x21,1);
   {
    FRPRD(x5,1);PRD1(3,r);FLD1(r,1)=x19;FLD1(r,2)=x20;
    FLD1(r,3)=_AOptimEval_51(x1,x2,x3,x4,x21);}}}
 return r;}

extern OBJ _AOptimEval_51(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4,register OBJ x5) /* distrib */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISTGPRD(x5,0)){
   FREE(x1,1);
   FREE(x2,1);
   FRPRD(x3,1);
   FRPRD(x4,1);
   *p1=x5;
  }else{
   if(ISTGPRD(x5,5)){
    {OBJ x42;OBJ x43=FLD(x5,3);
     if(EXPRD(x5,1)){
      COPY(x1,1);
      {
       RPRD(x5,*p1);FREE(FLD(*p1,1),1);FLD(*p1,1)=x1;
       x5=x43;p1=&FLD(*p1,3);continue;}
     }else{
      x42=FLD(x5,2);COPY(x42,1);CPPRD(x43,1);
      COPY(x1,1);
      {
       FRPRD(x5,1);PRD(3,5,*p1);FLD(*p1,1)=x1;FLD(*p1,2)=x42;
       x5=x43;p1=&FLD(*p1,3);continue;}}}
   }else{
    CPPRD(x3,1);
    {OBJ x45;OBJ x46;OBJ x47;OBJ x48;
     x45=_AAc_22(x3);
     x46=_AAc_21(x3);
     PRD(4,2,x47);FLD(x47,1)=x45;FLD(x47,2)=x46;FLD(x47,3)=__AAc_10;FLD(x47,4)=x5;
     PRD1(2,x48);FLD1(x48,1)=x47;FLD1(x48,2)=x2;
     PRD(3,5,*p1);FLD(*p1,1)=x1;FLD(*p1,2)=x48;FLD(*p1,3)=x4;}}}
  break;}
 return r;}

extern TUP2 _AOptimEval_52(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* simplifyBlock */
{TUP2 r;
 {OBJ x7;OBJ x10;
  if(ISTGPRD(x5,0)){
   x7=__ABUILTIN_5;
  }else{
   x7=__ABUILTIN_3;}
  if(ISTGPRM(x7,1)){
   x10=__ABUILTIN_5;
  }else{
   if(ISPRM(x4)){
    x10=__ABUILTIN_5;
   }else{
    x10=__ABUILTIN_3;}}
  if(ISTGPRM(x10,1)){
   FRPRD(x1,1);
   FREE(x3,1);
   FREE(x4,1);
   r.c1=x2;r.c2=x5;
  }else{
   CPPRD(x1,2);
   CPCLS(__AOptimEval_96,1);
   CPCLS(__ASeq_5,1);
   CPCLS(__AIde_14,1);
   CPCLS(__APair_4,1);
   COPY(__AIdeMap_3,1);
   {TUP2 x12;OBJ x14;OBJ x15;TUP2 x17;OBJ x20;OBJ x21;TUP3 x23;OBJ x25;
    x12=_AOptimEval_53(x1,__AIdeMap_3,__ASeq_6,x4);
    x14=_AMapConv_4(__AIde_14,x12.c1);
    x15=_ASeqMap_3(__APair_4,x14);
    x17=_ASeqFilter_5(__AOptimEval_96,x15);
    x20=_ASeqMap_3(__ASeq_5,x17.c2);
    x21=_ASeq_26(x12.c2,x20);
    x23=_AOptimEval_54(x1,x2,x17.c1);r.c1=x23.c1;
    x25=_AOptimEval_59(x1,x23.c2,x5);
    PRD(3,5,r.c2);FLD(r.c2,1)=x3;FLD(r.c2,3)=x25;
    FLD(r.c2,2)=_ASeq_26(x21,x23.c3);}}}
 return r;}
extern OBJ _AOptimEval_52_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* simplifyBlock */
{OBJ r;
 {TUP2 t=_AOptimEval_52(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AOptimEval_53(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4) /* sampleTupleCands */
{TUP2 r;
 for(;;){
  if(ISPRM(x4)){
   FRPRD(x1,1);
   r.c1=x2;r.c2=x3;
  }else{
   {OBJ x187=FLD1(x4,1);OBJ x188=FLD1(x4,2);FLAG x_x4=EXPRD(x4,1);
    if(x_x4){
    }else{
     CPPRD(x187,1);COPY(x188,1);}
    if(ISTGPRD(x187,2)){
     {OBJ x193=FLD(x187,4);
      CPPRD(x193,1);
      if(ISTGPRD(x193,6)){
       {OBJ x195=FLD(x193,2);
	CPPRD(x195,1);
	if(EXPRD(x193,1)){
	 DSPRD(x193);
	}else{
	 DCPRD(x193,1);}
	{OBJ x199=FLD1(x1,2);
	 CPPRD(x199,1);
	 CPPRD(x187,1);
	 CPCLS(__ATypeAnFun_9,1);
	 {OBJ x204;OBJ x205;OBJ x206;
	  x204=(*(OBJ(*)(OBJ,OBJ))METHOD(__ATypeAnFun_9,1))(__ATypeAnFun_9,x199);
	  x205=_ATypeAnFun_4(x187);
	  x206=_ATypeAnFun_8(x204,x205);
	  if(ISPRD(x206)&&(ISTGPRD(x206,2))){
	   if(EXPRD(x206,1)){
	    FREE(FLD(x206,1),1);DSPRDF(x206);
	   }else{
	    DCPRD(x206,1);}
	   FRPRD(x195,1);
	   {OBJ x208;
	    if(x_x4){
	     RSOME(x4,x208);FLD1(x208,2)=x3;
	    }else{
	     FRPRD(x4,1);PRD1(2,x208);FLD1(x208,1)=x187;FLD1(x208,2)=x3;}
	    x3=x208;x4=x188;continue;}
	  }else{
	   FREE(x206,1);
	   if(ISTGPRD(x195,2)){
	    {OBJ x210=FLD(x195,2);
	     CPPRD(x210,2);
	     if(EXPRD(x195,1)){
	      DSPRD(x195);
	     }else{
	      DCPRD(x195,1);}
	     COPY(x2,1);
	     CPCLS(__AIde_14,1);
	     {OBJ x211;OBJ x213;OBJ x216;OBJ x217;
	      x211=_AMap_33(__AIde_14,x2,x210);
	      if(ISPRM(x211)){
	       x213=__ABUILTIN_3;
	      }else{
	       x213=__ABUILTIN_5;}
	      if(ISTGPRM(x213,1)){
	       {OBJ x215;
		if(ISPRM(x211)){
		 HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
		}else{
		 {OBJ x214=FLD1(x211,1);
		  if(EXPRD(x211,1)){
		   x215=x214;
		   DSPRDF(x211);
		  }else{
		   COPY(x214,1);
		   x215=x214;
		   FRPRD(x211,1);}
		  CPCLS(__AIde_14,1);}}
		if(x_x4){
		 RSOME(x4,x216);FLD1(x216,2)=x215;
		}else{
		 FRPRD(x4,1);PRD1(2,x216);FLD1(x216,1)=x187;FLD1(x216,2)=x215;}}
	      }else{
	       FREE(x211,1);
	       CPCLS(__AIde_14,1);
	       if(x_x4){
		RSOME(x4,x216);FLD1(x216,2)=__ASeq_6;
	       }else{
		FRPRD(x4,1);PRD1(2,x216);FLD1(x216,1)=x187;FLD1(x216,2)=__ASeq_6;}}
	      x217=_AMap_31(__AIde_14,x210,x216,x2);
	      x2=x217;x4=x188;continue;}}
	   }else{
	    HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}}}
      }else{
       FRPRD(x193,1);
       {OBJ x218;
	if(x_x4){
	 RSOME(x4,x218);FLD1(x218,2)=x3;
	}else{
	 FRPRD(x4,1);PRD1(2,x218);FLD1(x218,1)=x187;FLD1(x218,2)=x3;}
	x3=x218;x4=x188;continue;}}}
    }else{
     {OBJ x219;
      if(x_x4){
       RSOME(x4,x219);FLD1(x219,2)=x3;
      }else{
       FRPRD(x4,1);PRD1(2,x219);FLD1(x219,1)=x187;FLD1(x219,2)=x3;}
      x3=x219;x4=x188;continue;}}}}
  break;}
 return r;}
extern OBJ _AOptimEval_53_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* sampleTupleCands */
{OBJ r;
 {TUP2 t=_AOptimEval_53(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP3 _AOptimEval_54(OBJ x1,OBJ x2,OBJ x3) /* tupleCands */
{TUP3 r;
 if(ISPRM(x3)){
  FRPRD(x1,1);
  r.c1=x2;r.c2=__ASeq_6;r.c3=__ASeq_6;
 }else{
  {OBJ x31=FLD1(x3,1);OBJ x32=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
   if(x_x3){
   }else{
    COPY(x31,1);COPY(x32,1);}
   CPPRD(x1,1);
   {TUP3 x35;TUP3 x40;
    x35=_AOptimEval_55(x1,x2,x31);
    x40=_AOptimEval_54(x1,x35.c1,x32);r.c1=x40.c1;
    if(x_x3){
     RSOME(x3,r.c3);FLD1(r.c3,1)=x35.c3;FLD1(r.c3,2)=x40.c3;
    }else{
     FRPRD(x3,1);PRD1(2,r.c3);FLD1(r.c3,1)=x35.c3;FLD1(r.c3,2)=x40.c3;}
    PRD1(2,r.c2);FLD1(r.c2,1)=x35.c2;FLD1(r.c2,2)=x40.c2;}}}
 return r;}
extern OBJ _AOptimEval_54_c(OBJ x1,OBJ x2,OBJ x3) /* tupleCands */
{OBJ r;
 {TUP3 t=_AOptimEval_54(x1,x2,x3);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern TUP3 _AOptimEval_55(OBJ x1,OBJ x2,OBJ x3) /* tuple */
{TUP3 r;
 {OBJ x9;OBJ x4;OBJ x5;OBJ x6;OBJ x10;OBJ x11;OBJ x24;
  if(ISPRM(x3)){
   HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
  }else{
   {OBJ x7=FLD1(x3,1);
    CPPRD(x7,1);
    x9=x7;
    CPPRD(x1,2);
    CPPRD(x3,3);
    CPCLS(__AOptimEval_58,1);
    CPCLS(__ATypeAnFun_4,1);
    COPY(__AIdeSet_2,1);}}
  CPPRD(x9,1);
  x4=_ASeqMap_3(__ATypeAnFun_4,x3);
  x5=_AOptimEval_57(x1,x3);
  CPPRD(x5,1);
  x6=_AOptimEval_56(x3,__AIdeSet_2,__ASeq_6);
  PRD(1,2,x10);FLD(x10,1)=x4;
  x11=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimEval_58,2))(__AOptimEval_58,x1,x5);
  x24=_AAc_22(x9);
  if(ISTGPRD(x9,2)){
   {OBJ x50=FLD(x9,4);FLAG x_x9=EXPRD(x9,1);
    if(x_x9){
    }else{
     CPPRD(x50,1);}
    {OBJ x51;OBJ x52;OBJ x54;OBJ x55;OBJ x56;FLAG x_x1=EXPRD(x1,1);
     if(x_x1){
     }else{
      x51=FLD1(x1,1);x52=FLD1(x1,2);x54=FLD1(x1,4);x55=FLD1(x1,5);x56=FLD1(x1,6);CPPRD(x51,1);CPPRD(x52,1);COPY(x54,1);COPY(x55,1);COPY(x56,1);}
     CPPRD(x50,1);
     COPY(__AIdeMap_3,1);
     {OBJ x57;OBJ x58;OBJ x60;
      if(x_x1){
       RSOME(x1,x57);FREE(FLD1(x57,3),1);FLD1(x57,3)=__AIdeMap_3;
      }else{
       FRPRD(x1,1);PRD1(6,x57);FLD1(x57,1)=x51;FLD1(x57,2)=x52;FLD1(x57,3)=__AIdeMap_3;FLD1(x57,4)=x54;FLD1(x57,5)=x55;FLD1(x57,6)=x56;}
      x58=_AAc_50(x50);
      PRD(1,1,x60);FLD(x60,1)=x10;
      if(ISTGPRD(x50,6)){
       {OBJ x62;FLAG x_x50=EXPRD(x50,1);
	if(x_x50){
	}else{
	 x62=FLD(x50,2);CPPRD(x62,1);}
	COPY(x60,1);
	CPCLS(__AOptimEval_95,1);
	{OBJ x65;OBJ x66;OBJ x67;TUP2 x68;OBJ x70;TUP2 x72;TUP2 x76;
	 x65=_AAn_3(x24,x60);
	 x66=_ASeqMap_3(__AOptimEval_95,x3);
	 x67=_AAn_3(x58,x60);
	 x68=_ASeqMapEnv_4(x11,x2,x6);
	 if(x_x50){
	  RPRD(x50,x70);FREE(FLD(x70,1),1);FLD(x70,1)=x67;FREE(FLD(x70,3),1);FLD(x70,3)=x68.c2;FRPRD(FLD(x70,4),1);FLD(x70,4)=x5;
	 }else{
	  FRPRD(x50,1);PRD(4,6,x70);FLD(x70,1)=x67;FLD(x70,2)=x62;FLD(x70,3)=x68.c2;FLD(x70,4)=x5;}
	 x72=_AOptimEval_24(x57,x68.c1,x70);
	 x76=_AOptimEval_32(x72.c1);r.c1=x76.c1;
	 CPPRD(x76.c2,1);
	 if(x_x9){
	  RPRD(x9,r.c3);FREE(FLD(r.c3,1),1);FLD(r.c3,1)=x65;FRPRD(FLD(r.c3,2),1);FLD(r.c3,2)=x76.c2;FLD(r.c3,3)=__AAc_10;FLD(r.c3,4)=x72.c2;
	 }else{
	  FRPRD(x9,1);PRD(4,2,r.c3);FLD(r.c3,1)=x65;FLD(r.c3,2)=x76.c2;FLD(r.c3,3)=__AAc_10;FLD(r.c3,4)=x72.c2;}
	 PRD1(2,r.c2);FLD1(r.c2,1)=x76.c2;FLD1(r.c2,2)=x66;}}
      }else{
       HLT("Ac at <unknown> : undefined selection discr\'Ac:exp->exp");}}}}
  }else{
   HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}
 return r;}
extern OBJ _AOptimEval_55_c(OBJ x1,OBJ x2,OBJ x3) /* tuple */
{OBJ r;
 {TUP3 t=_AOptimEval_55(x1,x2,x3);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern OBJ _AOptimEval_56(register OBJ x1,register OBJ x2,register OBJ x3) /* calcAllMatches */
{OBJ r;
 for(;;){
  if(ISPRM(x1)){
   FREE(x2,1);
   r=x3;
  }else{
   {OBJ x104=FLD1(x1,1);OBJ x105=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
    if(x_x1){
    }else{
     CPPRD(x104,1);COPY(x105,1);}
    if(ISTGPRD(x104,2)){
     {OBJ x109=FLD(x104,4);
      if(EXPRD(x104,1)){
       FLD(x104,4)=NIL;DSPRD(x104);
      }else{
       CPPRD(x109,1);
       FRPRD(x104,1);}
      if(ISTGPRD(x109,6)){
       {OBJ x112=FLD(x109,3);
	if(EXPRD(x109,1)){
	 FLD(x109,3)=NIL;DSPRD(x109);
	}else{
	 COPY(x112,1);
	 FRPRD(x109,1);}
	CPCLS(__AOptimEval_74,1);
	{OBJ x114;OBJ x115;
	 if(x_x1){
	  RSOME(x1,x114);FLD1(x114,1)=x2;FLD1(x114,2)=x3;
	 }else{
	  FRPRD(x1,1);PRD1(2,x114);FLD1(x114,1)=x2;FLD1(x114,2)=x3;}
	 x115=_ASeqReduce_3(__AOptimEval_74,x114,x112);
	 {OBJ x116=FLD1(x115,1);OBJ x117=FLD1(x115,2);
	  if(EXPRD(x115,1)){
	   DSPRDF(x115);
	  }else{
	   COPY(x116,1);COPY(x117,1);
	   FRPRD(x115,1);}
	  x1=x105;x2=x116;x3=x117;continue;}}}
      }else{
       HLT("OptimEval at <574,7-20> : missing else in calcAllMatches\'OptimEval:seq**ideSet**seq->seq");}}
    }else{
     HLT("OptimEval at <574,7-20> : missing else in calcAllMatches\'OptimEval:seq**ideSet**seq->seq");}}}
  break;}
 return r;}

extern OBJ _AOptimEval_57(OBJ x1,OBJ x2) /* tupleBinds */
{OBJ r;
 CPCLS(__AOptimEval_75,1);
 CPCLS(__ATypeAnFun_4,1);
 FRPRD(x1,1);
 COPY(x2,3);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  x3=_ASeqMap_3(__ATypeAnFun_4,x2);
  x4=_ASeq_52(x2,__ANat_5);
  PRD(1,2,x5);FLD(x5,1)=x3;
  x6=_ABuiltin_18(x4);
  x7=_AAn_3(__AAn_2,x5);
  PRD(2,2,x8);FLD(x8,1)=x7;FLD(x8,2)=x6;
  x9=_ASeqMap_3(__AOptimEval_75,x2);
  PRD(3,3,x10);FLD(x10,1)=__AAn_2;FLD(x10,2)=x8;FLD(x10,3)=x9;
  PRD(3,5,r);FLD(r,1)=__AAn_2;FLD(r,2)=x2;FLD(r,3)=x10;}
 return r;}

extern TUP2 _AOptimEval_58(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genTupledMatch */
{TUP2 r;
 FRPRD(x1,1);
 {OBJ x21;OBJ x22=FLD1(x4,2);
  if(EXPRD(x4,1)){
   CPCLS(__AOptimEval_33,1);
   {
    RSOME(x4,r.c2);FRPRD(FLD1(r.c2,3),1);FLD1(r.c2,3)=x2;
    {TUP2 t=_ASeqMapEnv_4(__AOptimEval_33,x3,x22);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x21=FLD1(x4,1);CPPRD(x21,1);COPY(x22,1);
   CPCLS(__AOptimEval_33,1);
   {
    FRPRD(x4,1);PRD1(3,r.c2);FLD1(r.c2,1)=x21;FLD1(r.c2,3)=x2;
    {TUP2 t=_ASeqMapEnv_4(__AOptimEval_33,x3,x22);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _AOptimEval_58_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genTupledMatch */
{OBJ r;
 {TUP2 t=_AOptimEval_58(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_59(OBJ x1,OBJ x2,OBJ x3) /* deconsTupledLhs */
{OBJ r;
 if(ISPRM(x2)){
  FRPRD(x1,1);
  r=x3;
 }else{
  {OBJ x43=FLD1(x2,1);OBJ x44=FLD1(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    CPPRD(x43,1);COPY(x44,1);
    FRPRD(x2,1);}
   CPCLS(__AOptimEval_78,1);
   {OBJ x47;OBJ x46;
    x47=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_78,1))(__AOptimEval_78,__ABUILTIN_20);
    x46=_AOptimEval_59(x1,x44,x3);
    {OBJ x48=FLD1(x43,1);OBJ x49=FLD1(x43,2);FLAG x_x43=EXPRD(x43,1);
     if(x_x43){
      COPY(x49,1);
     }else{
      CPPRD(x48,1);COPY(x49,2);}
     {OBJ x50;OBJ x51;OBJ x52;OBJ x53;OBJ x54;OBJ x55;
      PRD(1,0,x50);FLD(x50,1)=x47;
      x51=_ASeq_52(x49,__ANat_5);
      PRD(2,2,x52);FLD(x52,1)=__AAn_2;FLD(x52,2)=x48;
      x53=_ABuiltin_18(x51);
      PRD1(3,x54);FLD1(x54,1)=x53;FLD1(x54,2)=x49;FLD1(x54,3)=x46;
      if(x_x43){
       RSOME(x43,x55);FLD1(x55,1)=x54;FLD1(x55,2)=__ASeq_6;
      }else{
       FRPRD(x43,1);PRD1(2,x55);FLD1(x55,1)=x54;FLD1(x55,2)=__ASeq_6;}
      PRD(4,6,r);FLD(r,1)=__AAn_2;FLD(r,2)=x52;FLD(r,3)=x55;FLD(r,4)=x50;}}}}}
 return r;}

extern OBJ _AOptimEval_60(OBJ x1,OBJ x2) /* matchOf */
{OBJ r;
 {OBJ x3=FLD1(x2,1);
  if(EXPRD(x2,1)){
   FLD1(x2,1)=NIL;DSPRD(x2);
  }else{
   CPPRD(x3,1);
   FRPRD(x2,1);}
  {OBJ x6;
   x6=x3;
   r=_AIde_13(x6,x1);}}
 return r;}

extern TUP2 _AOptimEval_61(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* evalMatch */
{TUP2 r;
 CPCLS(__AOptimEval_94,1);
 {OBJ x24;
  x24=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_94,1))(__AOptimEval_94,__ABUILTIN_20);
  {OBJ x199=FLD1(x4,1);OBJ x200=FLD1(x4,2);OBJ x201=FLD1(x4,3);FLAG x_x4=EXPRD(x4,1);
   if(x_x4){
   }else{
    CPPRD(x199,1);COPY(x200,1);CPPRD(x201,1);}
   {OBJ x265=FLD1(x1,1);OBJ x266=FLD1(x1,2);OBJ x267=FLD1(x1,3);OBJ x268=FLD1(x1,4);OBJ x269=FLD1(x1,5);OBJ x270=FLD1(x1,6);FLAG x_x1=EXPRD(x1,1);
    if(x_x1){
    }else{
     CPPRD(x265,1);CPPRD(x266,1);COPY(x267,1);COPY(x268,1);COPY(x269,1);COPY(x270,1);}
    {OBJ x273;OBJ x275;OBJ x276;OBJ x277;OBJ x278;OBJ x279;
     if(ISTGPRD(x2,2)){
      COPY(x200,2);
      CPCLS(__AOptimEval_33,1);
      CPCLS(__AAc_21,2);
      CPCLS(__ATypeAnFun_4,1);
      x273=__ABUILTIN_5;
     }else{
      COPY(x200,2);
      CPCLS(__AOptimEval_33,1);
      CPCLS(__AAc_21,2);
      CPCLS(__ATypeAnFun_4,1);
      x273=__ABUILTIN_3;}
     x275=_ASeqMap_3(__ATypeAnFun_4,x200);
     x276=_ASeqMap_3(__AAc_21,x200);
     {TUP2 t=_ASeqMapEnv_4(__AOptimEval_33,x3,x200);
      x277=t.c1;
      x278=t.c2;}
     COPY(x278,1);
     x279=_ASeqMap_3(__AAc_21,x278);
     {OBJ x280;OBJ x281;OBJ x282=FLD1(x277,3);FLAG x_x277=EXPRD(x277,1);
      if(x_x277){
      }else{
       x280=FLD1(x277,1);x281=FLD1(x277,2);COPY(x281,1);COPY(x282,1);}
      COPY(x278,1);
      COPY(__AOptimEval_34,1);
      CPCLS(__AIde_14,2);
      {OBJ x283;OBJ x284;OBJ x285;OBJ x286;OBJ x296;OBJ x297;OBJ x299;OBJ x300;
       x283=_ASeqMap_3(x24,x278);
       COPY(x283,1);
       if(x_x277){
	RSOME(x277,x284);FLD1(x284,3)=__AOptimEval_34;
       }else{
	FRPRD(x277,1);PRD1(3,x284);FLD1(x284,1)=x280;FLD1(x284,2)=x281;FLD1(x284,3)=__AOptimEval_34;}
       x285=_AMap_10(__AIde_14,x267,x276,x283);
       x286=_AMap_10(__AIde_14,x270,x279,x275);
       if(ISTGPRM(x273,1)){
	if(ISTGPRD(x2,2)){
	 {OBJ x290=FLD(x2,2);FLAG x_x2=EXPRD(x2,1);
	  if(x_x2){
	  }else{
	   CPPRD(x290,1);}
	  {OBJ x293;OBJ x294;
	   if(ISPRM(x278)){
	    CPPRD(x199,1);
	    x293=__ABUILTIN_5;
	   }else{
	    CPPRD(x199,1);
	    x293=__ABUILTIN_3;}
	   if(x_x2){
	    RPRD(x2,x294);FREE(FLD(x294,1),1);FLD(x294,1)=__AAn_2;FLD(x294,2)=x199;
	   }else{
	    FRPRD(x2,1);PRD(2,2,x294);FLD(x294,1)=__AAn_2;FLD(x294,2)=x199;}
	   if(ISTGPRM(x293,1)){
	    FREE(x283,1);
	    CPCLS(__AIde_14,1);
	    x296=_AMap_31(__AIde_14,x290,x294,x268);
	   }else{
	    CPCLS(__AIde_14,1);
	    {OBJ x295;
	     PRD(3,3,x295);FLD(x295,1)=__AAn_2;FLD(x295,2)=x294;FLD(x295,3)=x283;
	     x296=_AMap_31(__AIde_14,x290,x295,x268);}}}}
	}else{
	 HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
       }else{
	x296=x268;
	FRPRD(x2,1);
	FREE(x283,1);}
       if(x_x1){
	RSOME(x1,x297);FLD1(x297,3)=x285;FLD1(x297,4)=x296;FLD1(x297,6)=x286;
       }else{
	FRPRD(x1,1);PRD1(6,x297);FLD1(x297,1)=x265;FLD1(x297,2)=x266;FLD1(x297,3)=x285;FLD1(x297,4)=x296;FLD1(x297,5)=x269;FLD1(x297,6)=x286;}
       {TUP2 t=_AOptimEval_24(x297,x284,x201);
	x299=t.c1;
	x300=t.c2;}
       {OBJ x301;OBJ x302;OBJ x303=FLD1(x299,3);
	if(EXPRD(x299,1)){
	 {OBJ x304;
	  x304=_AOptimEval_38(x282,x303);
	  if(x_x4){
	   RSOME(x4,r.c2);FLD1(r.c2,2)=x278;FLD1(r.c2,3)=x300;
	  }else{
	   FRPRD(x4,1);PRD1(3,r.c2);FLD1(r.c2,1)=x199;FLD1(r.c2,2)=x278;FLD1(r.c2,3)=x300;}
	  RSOME(x299,r.c1);FLD1(r.c1,3)=x304;}
	}else{
	 x301=FLD1(x299,1);x302=FLD1(x299,2);COPY(x302,1);COPY(x303,1);
	 {OBJ x304;
	  x304=_AOptimEval_38(x282,x303);
	  if(x_x4){
	   RSOME(x4,r.c2);FLD1(r.c2,2)=x278;FLD1(r.c2,3)=x300;
	  }else{
	   FRPRD(x4,1);PRD1(3,r.c2);FLD1(r.c2,1)=x199;FLD1(r.c2,2)=x278;FLD1(r.c2,3)=x300;}
	  FRPRD(x299,1);PRD1(3,r.c1);FLD1(r.c1,1)=x301;FLD1(r.c1,2)=x302;FLD1(r.c1,3)=x304;}}}}}}}}}
 return r;}
extern OBJ _AOptimEval_61_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* evalMatch */
{OBJ r;
 {TUP2 t=_AOptimEval_61(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_62(OBJ x1,OBJ x2) /* checkConstruction */
{OBJ r;
 {OBJ x5;OBJ x48;OBJ x52;OBJ x56;OBJ x57;
  if(ISTGPRD(x2,2)){
   x5=__ABUILTIN_5;
  }else{
   x5=__ABUILTIN_3;}
  if(ISTGPRM(x5,1)){
   if(ISTGPRD(x2,2)){
    {OBJ x25=FLD(x2,2);
     CPPRD(x25,1);
     {OBJ x44=FLD1(x1,4);
      COPY(x44,2);
      CPPRD(x25,1);
      CPCLS(__AIde_14,1);
      {OBJ x47;
       x47=_AMap_20(__AIde_14,x25,x44);
       if(ISTGPRM(x47,1)){
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	CPCLS(__AIde_14,1);
	x48=_AMap_16(__AIde_14,x44,x25);
       }else{
	FRPRD(x25,1);
	FREE(x44,1);
	x48=x2;}}}}
   }else{
    HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
  }else{
   x48=x2;}
  if(ISTGPRD(x48,3)){
   x52=__ABUILTIN_5;
  }else{
   x52=__ABUILTIN_3;}
  if(ISTGPRM(x52,1)){
   if(ISTGPRD(x48,3)){
    {OBJ x54=FLD(x48,2);
     CPPRD(x54,1);
     x56=x54;}
   }else{
    HLT("Ac at <unknown> : undefined selection fun\'Ac:exp->exp");}
  }else{
   x56=x48;
   CPPRD(x56,1);}
  CPPRD(x56,1);
  x57=_AAcFun_6(x56);
  if(ISTGPRM(x57,1)){
   {OBJ x86=FLD1(x1,2);
    if(EXPRD(x1,1)){
     FLD1(x1,2)=NIL;DSPRD(x1);
    }else{
     CPPRD(x86,1);
     FRPRD(x1,1);}
    if(ISTGPRD(x56,2)){
     {OBJ x92=FLD(x56,2);
      if(EXPRD(x56,1)){
       FREE(FLD(x56,1),1);DSPRDF(x56);
      }else{
       CPPRD(x92,1);
       FRPRD(x56,1);}
      {OBJ x93;
       x93=_AAcFun_10(x86,x92);
       if(ISTGPRD(x93,3)){
	if(EXPRD(x93,1)){
	 DSPRD(x93);
	}else{
	 DCPRD(x93,1);}
	PRD1(1,r);FLD1(r,1)=x48;
       }else{
	FRPRD(x48,1);
	FRPRD(x93,1);
	r=__AOption_5;}}}
    }else{
     HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
  }else{
   FRPRD(x1,1);
   FRPRD(x48,1);
   FRPRD(x56,1);
   r=__AOption_5;}}
 return r;}

extern TUP2 _AOptimEval_63(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* combineCases */
{TUP2 r;
 if(ISTGPRD(x6,6)){
  {OBJ x40=FLD(x6,2);OBJ x41=FLD(x6,3);OBJ x42=FLD(x6,4);
   CPPRD(x40,1);COPY(x41,1);CPPRD(x42,1);
   CPPRD(x4,1);
   {OBJ x43;
    x43=_AAcFun_1(x4,x40);
    if(ISTGPRM(x43,1)){
     if(EXPRD(x6,1)){
      DSPRD(x6);
     }else{
      DCPRD(x6,1);}
     COPY(x5,1);
     CPCLS(__AOptimEval_64,1);
     {OBJ x44;OBJ x45;OBJ x46;
      x44=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_64,1))(__AOptimEval_64,x5);
      x45=_ASeqFilter_2(x44,x41);
      x46=_ASeq_26(x5,x45);
      r=_AOptimEval_65(x1,x2,x3,x4,x46,x42);}
    }else{
     FREE(x41,1);
     FRPRD(x42,1);
     r=_AOptimEval_65(x1,x2,x3,x4,x5,x6);}}}
 }else{
  r=_AOptimEval_65(x1,x2,x3,x4,x5,x6);}
 return r;}
extern OBJ _AOptimEval_63_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* combineCases */
{OBJ r;
 {TUP2 t=_AOptimEval_63(x1,x2,x3,x4,x5,x6);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_64(OBJ x1,OBJ x2) /* notMatched? */
{OBJ r;
 {OBJ x18=FLD1(x2,1);
  if(EXPRD(x2,1)){
   FLD1(x2,1)=NIL;DSPRD(x2);
  }else{
   CPPRD(x18,1);
   FRPRD(x2,1);}
  CPCLS(__AOptimEval_79,1);
  CPCLS(__ABUILTIN_7,1);
  CPCLS(__AAc_43,1);
  CPCLS(__ACompose_4,2);
  {OBJ x21;OBJ x22;OBJ x23;
   x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_79,1))(__AOptimEval_79,x18);
   x22=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,x21,__AAc_43);
   x23=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__ABUILTIN_7,x22);
   r=_ASeq_42(x23,x1);}}
 return r;}

extern TUP2 _AOptimEval_65(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* simplifyCase */
{TUP2 r;
 CPCLS(__AOptimEval_84,1);
 {OBJ x7;
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_84,1))(__AOptimEval_84,__ABUILTIN_20);
  {OBJ x8=FLD1(x1,1);
   CPPRD(x8,1);
   COPY(x5,1);
   CPPRD(x6,1);
   {OBJ x14;OBJ x16;TUP2 x17;OBJ x21;OBJ x32;OBJ x33;
    x14=x8;
    x16=_AAcFun_9(x14,x6);
    x17=_ASeqFilter_5(x7,x5);
    if(ISTGPRM(x16,1)){
     if(ISPRM(x17.c1)){
      x21=__ABUILTIN_3;
     }else{
      x21=__ABUILTIN_5;}
    }else{
     x21=__ABUILTIN_3;}
    if(ISTGPRM(x21,1)){
     FREE(x5,1);
     CPPRD(x6,1);
     CPCLS(__AOptimEval_85,1);
     CPCLS(__AAc_41,1);
     {OBJ x22;OBJ x23;OBJ x24;OBJ x27;OBJ x30;
      x22=_ASeqMap_3(__AAc_41,x17.c1);
      PRD1(2,x23);FLD1(x23,1)=x6;FLD1(x23,2)=x22;
      x24=_ASeqFilter_2(__AOptimEval_85,x23);
      if(ISPRM(x24)){
       x27=__ABUILTIN_3;
      }else{
       x27=__ABUILTIN_5;}
      if(ISTGPRM(x27,1)){
       FRPRD(x6,1);
       if(ISPRM(x24)){
	HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
       }else{
	{OBJ x28=FLD1(x24,1);
	 if(EXPRD(x24,1)){
	  x32=x17.c2;x33=x28;
	  FREE(FLD1(x24,2),1);DSPRDF(x24);
	 }else{
	  CPPRD(x28,1);
	  x32=x17.c2;x33=x28;
	  FRPRD(x24,1);}}}
      }else{
       x32=x17.c2;
       FREE(x24,1);
       x33=x6;}}
    }else{
     FREE(x17.c1,1);
     FREE(x17.c2,1);
     x32=x5;x33=x6;}
    if(ISPRM(x32)){
     r.c2=x33;
     if(EXPRD(x1,1)){
      DSPRD(x1);
     }else{
      DCPRD(x1,1);}
     FREE(x3,1);
     FRPRD(x4,1);
     r.c1=x2;
    }else{
     CPPRD(x1,1);
     CPPRD(x4,1);
     CPPRD(x32,1);
     CPPRD(x33,1);
     {OBJ x57;
      x57=_AOptimEval_66(x1,x4,x32,x33);
      if(ISPRM(x57)){
       if(EXPRD(x1,1)){
	DSPRD(x1);
       }else{
	DCPRD(x1,1);}
       PRD(4,6,r.c2);FLD(r.c2,1)=x3;FLD(r.c2,2)=x4;FLD(r.c2,3)=x32;FLD(r.c2,4)=x33;
       r.c1=x2;
      }else{
       {OBJ x58=FLD1(x57,1);
	if(EXPRD(x57,1)){
	 DSPRDF(x57);
	}else{
	 COPY(x58,1);
	 FRPRD(x57,1);}
	CPPRD(x4,1);
	{
	 PRD(4,6,r.c2);FLD(r.c2,1)=x3;FLD(r.c2,2)=x4;
	 {TUP3 t=_AOptimEval_67(x1,x2,x58,x4,x32,x33);
	  r.c1=t.c1;
	  FLD(r.c2,3)=t.c2;
	  FLD(r.c2,4)=t.c3;}}}}}}}}}
 return r;}
extern OBJ _AOptimEval_65_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* simplifyCase */
{OBJ r;
 {TUP2 t=_AOptimEval_65(x1,x2,x3,x4,x5,x6);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_66(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* defaultVariants */
{OBJ r;
 {OBJ x51=FLD1(x1,1);OBJ x52=FLD1(x1,2);OBJ x55=FLD1(x1,5);
  CPPRD(x51,1);CPPRD(x52,1);COPY(x55,1);
  {OBJ x57;
   x57=_AAcFun_9(x51,x4);
   if(ISTGPRM(x57,1)){
    if(EXPRD(x1,1)){
     DSPRD(x1);
    }else{
     DCPRD(x1,1);}
    FRPRD(x2,1);
    FREE(x3,1);
    FRPRD(x52,1);
    FREE(x55,1);
    COPY(__AOptimEval_80,1);
    r=__AOptimEval_80;
   }else{
    CPPRD(x2,1);
    CPCLS(__AOptimEval_70,1);
    CPCLS(__ATypeAnFun_9,1);
    {OBJ x58;OBJ x59;OBJ x60;OBJ x61;
     x58=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_70,1))(__AOptimEval_70,x1);
     x59=(*(OBJ(*)(OBJ,OBJ))METHOD(__ATypeAnFun_9,1))(__ATypeAnFun_9,x52);
     CPCLS(x59,1);
     x60=_ATypeAnFun_5(x58,x59,x2);
     x61=_ATypeAnFun_8(x59,x60);
     if(ISPRD(x61)&&(ISTGPRD(x61,5))){
      {OBJ x62=FLD(x61,1);
       if(EXPRD(x61,1)){
	DSPRDF(x61);
       }else{
	COPY(x62,1);
	FRPRD(x61,1);}
       if(ISTGPRD(x2,2)){
	{OBJ x64=FLD(x2,2);
	 if(EXPRD(x2,1)){
	  CPPRD(x64,1);
	  FREE(FLD(x2,1),1);DSPRDF(x2);
	 }else{
	  CPPRD(x64,2);
	  FRPRD(x2,1);}
	 COPY(x55,1);
	 CPCLS(__AIde_14,1);
	 {OBJ x65;OBJ x66;OBJ x67;OBJ x68;
	  x65=_AMap_20(__AIde_14,x64,x55);
	  if(ISTGPRM(x65,1)){
	   CPCLS(__AOptimEval_81,1);
	   CPCLS(__AOptimEval_82,1);
	   CPCLS(__AIde_14,1);
	   x66=_AMap_16(__AIde_14,x55,x64);
	  }else{
	   FREE(x55,1);
	   FRPRD(x64,1);
	   CPCLS(__AOptimEval_81,1);
	   CPCLS(__AOptimEval_82,1);
	   COPY(__AIdeSet_2,1);
	   x66=__AIdeSet_2;}
	  x67=_ASeqReduce_3(__AOptimEval_81,x66,x3);
	  x68=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimEval_82,1))(__AOptimEval_82,x67);
	  PRD1(1,r);
	  FLD1(r,1)=_ASeqFilter_2(x68,x62);}}
       }else{
	HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
     }else{
      FRPRD(x2,1);
      FREE(x3,1);
      FREE(x55,1);
      FREE(x61,1);
      r=__AOption_5;}}}}}
 return r;}

extern TUP3 _AOptimEval_67(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* completeMatches */
{TUP3 r;
 COPY(x3,1);
 FRPRD(x4,1);
 {OBJ x7;OBJ x8;
  x7=_ASeq_52(x3,__ANat_5);
  ANat_76(x7,__ANat_5,x8);
  if(ISTGPRM(x8,1)){
   FRPRD(x1,1);
   FREE(x3,1);
   COPY(__AOptimEval_83,1);
   {OBJ x9;OBJ x10;
    x9=_AAc_50(x6);
    x10=_AAn_5(x9,__AOptimEval_83);
    PRD(1,0,r.c3);FLD(r.c3,1)=x10;
    r.c1=x2;r.c2=x5;}
  }else{
   CPPRD(x1,1);
   CPPRD(x6,1);
   {OBJ x12;
    x12=_AOptimEval_68(x1,x7,x6);
    if(ISTGPRM(x12,1)){
     CPPRD(x6,1);
     CPCLS(__AOptimEval_71,1);
     COPY(__AOptimEval_83,1);
     {OBJ x13;OBJ x14;OBJ x15;TUP2 x19;
      x13=_AAc_50(x6);
      x14=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimEval_71,2))(__AOptimEval_71,x1,x6);
      x15=_AAn_5(x13,__AOptimEval_83);
      PRD(1,0,r.c3);FLD(r.c3,1)=x15;
      x19=_ASeqMapEnv_4(x14,x2,x3);r.c1=x19.c1;
      r.c2=_ASeq_26(x5,x19.c2);}
    }else{
     FRPRD(x1,1);
     FREE(x3,1);
     r.c1=x2;r.c2=x5;r.c3=x6;}}}}
 return r;}
extern OBJ _AOptimEval_67_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* completeMatches */
{OBJ r;
 {TUP3 t=_AOptimEval_67(x1,x2,x3,x4,x5,x6);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern OBJ _AOptimEval_68(OBJ x1,OBJ x2,OBJ x3) /* shallCompleteMatches */
{OBJ r;
 FRPRD(x3,1);
 {OBJ x4=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x4,1);
   FRPRD(x1,1);}
  {OBJ x10;OBJ x11;
   x10=x4;
   CPPRD(x10,1);
   x11=_APreparedOptions_18(x10);
   if(ISTGPRM(x11,1)){
    FRPRD(x10,1);
    r=__ABUILTIN_5;
   }else{
    {OBJ x12;
     x12=_APreparedOptions_17(x10);
     if(ISTGPRM(x12,1)){
      ANat_80(x2,__ANat_9,r);
     }else{
      r=__ABUILTIN_3;}}}}}
 return r;}

extern OBJ _AOptimEval_69(OBJ x1) /* neverError? */
{OBJ r;
 if(ISTGPRD(x1,0)){
  {OBJ x26;OBJ x32;
   x26=_AAc_50(x1);
   if(ISPRM(x26)){
    x32=__ASourceAn_28;
   }else{
    {OBJ x28=FLD1(x26,2);
     if(EXPRD(x26,1)){
      x32=x28;
      FLD1(x26,2)=NIL;DSPRD(x26);
     }else{
      COPY(x28,1);
      x32=x28;
      FRPRD(x26,1);}}}
   if(ISPRD(x32)&&(ISTGPRD(x32,2))){
    {OBJ x35=FLD(x32,3);
     if(EXPRD(x32,1)){
      FRPRD(FLD(x32,2),1);DSPRDF(x32);
     }else{
      FRPRD(x32,1);}
     if(ISTGPRM(x35,0)){
      r=__ABUILTIN_5;
     }else{
      r=__ABUILTIN_3;}}
   }else{
    FREE(x32,1);
    r=__ABUILTIN_3;}}
 }else{
  FRPRD(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimEval_70(OBJ x1,OBJ x2) /* typeValAss */
{OBJ r;
 if(ISTGPRD(x2,1)){
  {OBJ x55=FLD1(x1,6);
   if(EXPRD(x1,1)){
    FLD1(x1,6)=NIL;DSPRD(x1);
   }else{
    COPY(x55,1);
    FRPRD(x1,1);}
   CPCLS(__AIde_14,1);
   r=_AMap_16(__AIde_14,x55,x2);}
 }else{
  {OBJ x59=FLD1(x1,2);
   if(EXPRD(x1,1)){
    FLD1(x1,2)=NIL;DSPRD(x1);
   }else{
    CPPRD(x59,1);
    FRPRD(x1,1);}
   {OBJ x64;
    x64=_AAcFun_10(x59,x2);
    r=_ATypeAnFun_4(x64);}}}
 return r;}

extern TUP2 _AOptimEval_71(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genMatch */
{TUP2 r;
 FRPRD(x1,1);
 if(ISPRD(x4)&&(ISTGPRD(x4,4))){
  {OBJ x25=FLD(x4,1);OBJ x26=FLD(x4,2);
   if(EXPRD(x4,1)){
    DSPRDF(x4);
   }else{
    CPPRD(x25,1);COPY(x26,1);
    FRPRD(x4,1);}
   CPCLS(__AOptimEval_72,1);
   {
    PRD1(3,r.c2);FLD1(r.c2,1)=x25;FLD1(r.c2,3)=x2;
    {TUP2 t=_ASeqMapEnv_4(__AOptimEval_72,x3,x26);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}
 }else{
  HLT("OptimEval at <824,7-14> : missing else in genMatch\'OptimEval:inh**exp->thr**type->thr**match");}
 return r;}
extern OBJ _AOptimEval_71_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* genMatch */
{OBJ r;
 {TUP2 t=_AOptimEval_71(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AOptimEval_72(OBJ x1,OBJ x2) /* genVar */
{TUP2 r;
 {OBJ x4;OBJ x5;
  PRD(1,1,x4);FLD(x4,1)=x2;
  x5=_AAn_3(__AAn_2,x4);
  PRD(2,0,r.c2);FLD(r.c2,1)=x5;
  {TUP2 t=_AOptimEval_32(x1);
   r.c1=t.c1;
   FLD(r.c2,2)=t.c2;}}
 return r;}
extern OBJ _AOptimEval_72_c(OBJ x1,OBJ x2) /* genVar */
{OBJ r;
 {TUP2 t=_AOptimEval_72(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimEval_73(OBJ x1) /* distribWeightFun'73 */
{OBJ r;
 ANat_64(__ANat_59,__ANat_9,r);
 return r;}

extern OBJ _AOptimEval_74(OBJ x1,OBJ x2) /* calcAllMatches'74 */
{OBJ r;
 {OBJ x16=FLD1(x1,1);
  CPPRD(x16,1);
  {OBJ x28=FLD1(x2,1);OBJ x29=FLD1(x2,2);
   COPY(x28,2);COPY(x29,1);
   CPPRD(x16,1);
   CPCLS(__AIde_14,1);
   {OBJ x30;
    x30=_ABSTree_61(__AIde_14,x16,x28);
    if(ISTGPRM(x30,1)){
     if(EXPRD(x1,1)){
      DSPRD(x1);
     }else{
      DCPRD(x1,1);}
     FRPRD(x16,1);
     FREE(x28,1);
     FREE(x29,1);
     r=x2;
    }else{
     if(EXPRD(x2,1)){
      DSPRD(x2);
     }else{
      DCPRD(x2,1);}
     CPCLS(__AIde_14,1);
     {OBJ x31;OBJ x32;
      x31=_ABSTree_57(__AIde_14,x16,x28);
      PRD1(2,x32);FLD1(x32,1)=x1;FLD1(x32,2)=x29;
      PRD1(2,r);FLD1(r,1)=x31;FLD1(r,2)=x32;}}}}}
 return r;}

extern OBJ _AOptimEval_75(OBJ x1) /* tupleBinds'75 */
{OBJ r;
 {
  PRD(2,2,r);FLD(r,1)=__AAn_2;
  FLD(r,2)=_AAc_21(x1);}
 return r;}

extern OBJ _AOptimEval_78(OBJ x1) /* deconsTupledLhs'78 */
{OBJ r;
 COPY(__AOptimEval_77,1);
 r=_AAn_5(__AAn_2,__AOptimEval_77);
 return r;}

extern OBJ _AOptimEval_79(OBJ x1,OBJ x2) /* notMatched?'79 */
{OBJ r;
 r=_AIde_13(x2,x1);
 return r;}

extern OBJ _AOptimEval_81(OBJ x1,OBJ x2) /* defaultVariants'81 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPCLS(__AIde_14,1);
  {OBJ x6;
   x6=x3;
   r=_ABSTree_57(__AIde_14,x6,x2);}}
 return r;}

extern OBJ _AOptimEval_82(OBJ x1,OBJ x2) /* defaultVariants'82 */
{OBJ r;
 if(ISPRD(x2)&&(ISTGPRD(x2,4))){
  {OBJ x3=FLD(x2,1);
   if(EXPRD(x2,1)){
    FREE(FLD(x2,2),1);DSPRDF(x2);
   }else{
    CPPRD(x3,1);
    FRPRD(x2,1);}
   CPCLS(__AIde_14,1);
   {OBJ x5;OBJ x6;
    x5=x3;
    x6=_ABSTree_61(__AIde_14,x5,x1);
    if(ISTGPRM(x6,1)){
     r=__ABUILTIN_3;
    }else{
     r=__ABUILTIN_5;}}}
 }else{
  HLT("TypeAn at <unknown> : undefined selection cons\'TypeAn:type->ide");}
 return r;}

extern OBJ _AOptimEval_84(OBJ x1) /* simplifyCase'84 */
{OBJ r;
 CPCLS(__AAc_41,1);
 CPCLS(__AAc_75,1);
 CPCLS(__ACompose_4,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AAc_75,__AAc_41);
 return r;}

extern OBJ _AOptimEval_85(OBJ x1) /* simplifyCase'85 */
{OBJ r;
 {OBJ x2;
  x2=_AOptimEval_69(x1);
  if(ISTGPRM(x2,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

extern OBJ _AOptimEval_86(OBJ x1) /* eval'86 */
{OBJ r;
 CPCLS(__AAc_21,1);
 CPCLS(__ACompose_4,1);
 CPCLS(__AAcFun_7,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AAcFun_7,__AAc_21);
 return r;}

extern OBJ _AOptimEval_87(OBJ x1,OBJ x2) /* eval'87 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FRPRD(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   FRPRD(x1,1);}
  {OBJ x5;
   x5=x3;
   r=_AOptimEval_36(x5,x2);}}
 return r;}

extern OBJ _AOptimEval_88(OBJ x1,OBJ x2) /* eval'88 */
{OBJ r;
 {OBJ x45=FLD1(x2,1);OBJ x46=FLD1(x2,2);
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   COPY(x45,1);CPPRD(x46,1);
   FRPRD(x2,1);}
  {OBJ x50;
   if(ISPRM(x45)){
    FRPRD(x1,1);
    x50=__ABUILTIN_5;
   }else{
    {OBJ x47=FLD1(x45,1);
     if(EXPRD(x45,1)){
      DSPRDF(x45);
     }else{
      COPY(x47,1);
      FRPRD(x45,1);}
     if(ISTGPRD(x1,2)){
      {OBJ x49=FLD(x1,2);
       if(EXPRD(x1,1)){
	FREE(FLD(x1,1),1);DSPRDF(x1);
       }else{
	CPPRD(x49,1);
	FRPRD(x1,1);}
       CPCLS(__AIde_14,1);
       x50=_ABag_48(__AIde_14,x49,x47);}
     }else{
      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}}
   if(ISTGPRM(x50,1)){
    FRPRD(x46,1);
    r=__ABUILTIN_3;
   }else{
    if(ISTGPRD(x46,2)){
     {OBJ x54=FLD(x46,4);
      if(EXPRD(x46,1)){
       FLD(x46,4)=NIL;DSPRD(x46);
      }else{
       CPPRD(x54,1);
       FRPRD(x46,1);}
      if(ISTGPRD(x54,6)){
       if(EXPRD(x54,1)){
	DSPRD(x54);
       }else{
	DCPRD(x54,1);}
       r=__ABUILTIN_3;
      }else{
       FRPRD(x54,1);
       r=__ABUILTIN_5;}}
    }else{
     HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}}}
 return r;}

extern OBJ _AOptimEval_89(OBJ x1) /* eval'89 */
{OBJ r;
 {OBJ x23=FLD1(x1,2);
  if(EXPRD(x1,1)){
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   CPPRD(x23,1);
   FRPRD(x1,1);}
  if(ISTGPRD(x23,2)){
   {OBJ x27=FLD(x23,4);
    if(EXPRD(x23,1)){
     FLD(x23,4)=NIL;DSPRD(x23);
    }else{
     CPPRD(x27,1);
     FRPRD(x23,1);}
    if(ISTGPRD(x27,6)){
     if(EXPRD(x27,1)){
      DSPRD(x27);
     }else{
      DCPRD(x27,1);}
     r=__ABUILTIN_5;
    }else{
     FRPRD(x27,1);
     r=__ABUILTIN_3;}}
  }else{
   HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}
 return r;}

extern OBJ _AOptimEval_90(OBJ x1,OBJ x2) /* eval'90 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FRPRD(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   FRPRD(x1,1);}
  {OBJ x5;
   x5=x3;
   r=_AOptimEval_36(x5,x2);}}
 return r;}

extern OBJ _AOptimEval_91(OBJ x1,OBJ x2) /* eval'91 */
{OBJ r;
 {OBJ x58=FLD1(x1,2);
  if(EXPRD(x1,1)){
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   CPPRD(x58,1);
   FRPRD(x1,1);}
  {OBJ x81=FLD1(x2,1);OBJ x82=FLD1(x2,2);OBJ x83=FLD1(x2,3);OBJ x84=FLD1(x2,4);OBJ x85=FLD1(x2,5);OBJ x86=FLD1(x2,6);FLAG x_x2=EXPRD(x2,1);
   if(x_x2){
   }else{
    CPPRD(x81,1);CPPRD(x82,1);COPY(x83,1);COPY(x84,1);COPY(x85,1);COPY(x86,1);}
   CPPRD(x58,2);
   {OBJ x87;OBJ x88;
    x87=_AAc_21(x58);
    x88=_ATypeAnFun_4(x58);
    if(ISTGPRD(x58,2)){
     {OBJ x92=FLD(x58,4);
      if(EXPRD(x58,1)){
       FLD(x58,4)=NIL;DSPRD(x58);
      }else{
       CPPRD(x92,1);
       FRPRD(x58,1);}
      CPPRD(x87,1);
      CPCLS(__AIde_14,2);
      {OBJ x93;
       x93=_AMap_31(__AIde_14,x87,x88,x86);
       if(x_x2){
	RSOME(x2,r);FLD1(r,6)=x93;
       }else{
	FRPRD(x2,1);PRD1(6,r);FLD1(r,1)=x81;FLD1(r,2)=x82;FLD1(r,3)=x83;FLD1(r,5)=x85;FLD1(r,6)=x93;}
       FLD1(r,4)=_AMap_31(__AIde_14,x87,x92,x84);}}
    }else{
     HLT("Ac at <unknown> : undefined selection def\'Ac:dec->exp");}}}}
 return r;}

extern OBJ _AOptimEval_92(OBJ x1,OBJ x2) /* eval'92 */
{OBJ r;
 {OBJ x3=FLD1(x2,1);
  if(EXPRD(x2,1)){
   FLD1(x2,1)=NIL;DSPRD(x2);
  }else{
   CPPRD(x3,1);
   FRPRD(x2,1);}
  CPCLS(__AIde_14,1);
  {OBJ x6;OBJ x7;
   x6=x3;
   x7=_ABSTree_61(__AIde_14,x6,x1);
   if(ISTGPRM(x7,1)){
    r=__ABUILTIN_3;
   }else{
    r=__ABUILTIN_5;}}}
 return r;}

extern OBJ _AOptimEval_93(OBJ x1,OBJ x2) /* eval'93 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPCLS(__AIde_14,1);
  {OBJ x6;
   x6=x3;
   r=_ABSTree_57(__AIde_14,x6,x2);}}
 return r;}

extern OBJ _AOptimEval_94(OBJ x1) /* evalMatch'94 */
{OBJ r;
 CPCLS(__AAc_21,1);
 CPCLS(__ACompose_4,1);
 CPCLS(__AAcFun_7,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AAcFun_7,__AAc_21);
 return r;}

extern OBJ _AOptimEval_95(OBJ x1) /* tuple'95 */
{OBJ r;
 CPPRD(x1,1);
 {OBJ x2;
  x2=_AAc_22(x1);
  PRD(2,0,r);FLD(r,1)=x2;
  FLD(r,2)=_AAc_21(x1);}
 return r;}

extern OBJ _AOptimEval_96(OBJ x1) /* simplifyBlock'96 */
{OBJ r;
 {OBJ x2;
  x2=_ASeq_52(x1,__ANat_5);
  ANat_81(x2,__ANat_8,r);}
 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;}

static OBJ _mt_5_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,4);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 return r;}

static OBJ _mt_5_4_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),t1);
 return r;}
static OBJ _mt_5_4_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AOptimEval()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeqMap();
 init_ASeqReduce();
 init_ASeqFilter();
 init_ASeqMapEnv();
 init_AAc();
 init_ACompose();
 init_APreparedOptions();
 init_AOptimAnFun();
 init_AOcError();
 init_ATypeAnFun();
 init_AOcPos();
 init_AIdeSet();
 init_AString();
 init_AIdeBag();
 init_ASeq();
 init_AAcFun();
 init_AOcOptions();
 init_ABuiltin();
 init_ACom();
 init_AOptimEvalFin();
 init_ANat();
 init_AArray();
 init_AVoid();
 init_AMap();
 init_AOption();
 init_ASetByBST();
 init_AChar();
 init_ABSTree();
 init_AStream();
 init_ATree();
 init_AFile();
 init_ABitset();
 init_AInt();
 init_ASetByBSTFilter();
 init_ANatMap();
 init_ASetByBSTConv();
 init_AIde();
 init_ABSTreeConv();
 init_AAn();
 init_ABag();
 init_ATypeAn();
 init_ABagConv();
 init_ASourceAn();
 init_ABagFilter();
 init_AOptimAn();
 init_AMapConv();
 init_ATransAn();
 init_APragmaAn();
 init_AStore();
 init_AFormat();
 init_AFmt();
 init_ASet();
 init_APair();
 init_AIdeMap();
 CLS(1,_AOptimEval_95,__AOptimEval_95);
 CLS(2,_AOptimEval_31,__AOptimEval_31);
 CLS(6,_AOptimEval_63_c,__AOptimEval_63);
 LCLS(1,_AOptimEval_94,__AOptimEval_94);
 CLS(2,_AOptimEval_30,__AOptimEval_30);
 CLS(2,_AOptimEval_62,__AOptimEval_62);
 CLS(2,_AOptimEval_93,__AOptimEval_93);
 CLS(2,_AOptimEval_29,__AOptimEval_29);
 CLS(4,_AOptimEval_61_c,__AOptimEval_61);
 CLS(2,_AOptimEval_92,__AOptimEval_92);
 CLS(2,_AOptimEval_28,__AOptimEval_28);
 CLS(2,_AOptimEval_60,__AOptimEval_60);
 CLS(2,_AOptimEval_91,__AOptimEval_91);
 CLS(2,_AOptimEval_27,__AOptimEval_27);
 CLS(3,_AOptimEval_59,__AOptimEval_59);
 CLS(2,_AOptimEval_90,__AOptimEval_90);
 CLS(2,_AOptimEval_26,__AOptimEval_26);
 CLS(4,_AOptimEval_58_c,__AOptimEval_58);
 CLS(1,_AOptimEval_89,__AOptimEval_89);
 CLS(2,_AOptimEval_25,__AOptimEval_25);
 CLS(2,_AOptimEval_57,__AOptimEval_57);
 CLS(2,_AOptimEval_88,__AOptimEval_88);
 CLS(3,_AOptimEval_24_c,__AOptimEval_24);
 CLS(3,_AOptimEval_56,__AOptimEval_56);
 CLS(2,_AOptimEval_87,__AOptimEval_87);
 CLS(3,_AOptimEval_55_c,__AOptimEval_55);
 LCLS(1,_AOptimEval_86,__AOptimEval_86);
 CLS(1,_AOptimEval_22,__AOptimEval_22);
 CLS(3,_AOptimEval_54_c,__AOptimEval_54);
 CLS(1,_AOptimEval_85,__AOptimEval_85);
 CLS(1,_AOptimEval_21,__AOptimEval_21);
 CLS(4,_AOptimEval_53_c,__AOptimEval_53);
 LCLS(1,_AOptimEval_84,__AOptimEval_84);
 CLS(1,_AOptimEval_20,__AOptimEval_20);
 CLS(5,_AOptimEval_52_c,__AOptimEval_52);
 CLS(1,_AOptimEval_19,__AOptimEval_19);
 CLS(5,_AOptimEval_51,__AOptimEval_51);
 CLS(2,_AOptimEval_82,__AOptimEval_82);
 CLS(1,_AOptimEval_18,__AOptimEval_18);
 CLS(5,_AOptimEval_50,__AOptimEval_50);
 CLS(2,_AOptimEval_81,__AOptimEval_81);
 CLS(1,_AOptimEval_17,__AOptimEval_17);
 CLS(2,_AOptimEval_49,__AOptimEval_49);
 CLS(1,_AOptimEval_16,__AOptimEval_16);
 CLS(2,_AOptimEval_48,__AOptimEval_48);
 CLS(2,_AOptimEval_79,__AOptimEval_79);
 CLS(6,_AOptimEval_15,__AOptimEval_15);
 CLS(8,_AOptimEval_47,__AOptimEval_47);
 LCLS(1,_AOptimEval_78,__AOptimEval_78);
 CLS(6,_AOptimEval_46_c,__AOptimEval_46);
 CLS(1,_AOptimEval_13,__AOptimEval_13);
 CLS(4,_AOptimEval_45_c,__AOptimEval_45);
 DEN("",__AOptimEval_76);
 CLS(1,_AOptimEval_12,__AOptimEval_12);
 CLS(3,_AOptimEval_44,__AOptimEval_44);
 CLS(1,_AOptimEval_75,__AOptimEval_75);
 CLS(1,_AOptimEval_11,__AOptimEval_11);
 CLS(4,_AOptimEval_43,__AOptimEval_43);
 CLS(2,_AOptimEval_74,__AOptimEval_74);
 CLS(1,_AOptimEval_10,__AOptimEval_10);
 CLS(4,_AOptimEval_42,__AOptimEval_42);
 LCLS(1,_AOptimEval_73,__AOptimEval_73);
 CLS(3,_AOptimEval_9,__AOptimEval_9);
 CLS(5,_AOptimEval_41_c,__AOptimEval_41);
 CLS(2,_AOptimEval_40,__AOptimEval_40);
 CLS(2,_AOptimEval_72_c,__AOptimEval_72);
 CLS(4,_AOptimEval_71_c,__AOptimEval_71);
 CLS(1,_AOptimEval_7,__AOptimEval_7);
 CLS(2,_AOptimEval_39,__AOptimEval_39);
 CLS(2,_AOptimEval_70,__AOptimEval_70);
 CLS(2,_AOptimEval_38,__AOptimEval_38);
 CLS(1,_AOptimEval_69,__AOptimEval_69);
 CLS(1,_AOptimEval_5,__AOptimEval_5);
 CLS(2,_AOptimEval_37,__AOptimEval_37);
 CLS(3,_AOptimEval_68,__AOptimEval_68);
 CLS(1,_AOptimEval_4,__AOptimEval_4);
 CLS(2,_AOptimEval_36,__AOptimEval_36);
 CLS(6,_AOptimEval_67_c,__AOptimEval_67);
 CLS(1,_AOptimEval_3,__AOptimEval_3);
 CLS(2,_AOptimEval_35,__AOptimEval_35);
 CLS(4,_AOptimEval_66,__AOptimEval_66);
 CLS(6,_AOptimEval_65_c,__AOptimEval_65);
 CLS(3,_AOptimEval_1_c,__AOptimEval_1);
 CLS(2,_AOptimEval_33_c,__AOptimEval_33);
 CLS(1,_AOptimEval_96,__AOptimEval_96);
 CLS(1,_AOptimEval_32_c,__AOptimEval_32);
 CLS(2,_AOptimEval_64,__AOptimEval_64);
 MTH(1,0,2,_mt_1_0_2);LZYMTH(1,0,2,_mt_1_0_2);
 MTH(5,0,4,_mt_5_0_4);LZYMTH(5,0,4,_mt_5_0_4);
 MTH(5,4,1,_mt_5_4_1);LZYMTH(5,4,1,_mt_5_4_1_l);
 PRM1(__AOptimEval_6);
 COPY(__AIdeBag_2,1);
 PRD1(1,__AOptimEval_34);FLD1(__AOptimEval_34,1)=__AIdeBag_2;
 CPPRD(__AOptimEval_76,1);
 PRD(3,2,__AOptimEval_77);FLD(__AOptimEval_77,1)=__ASourceAn_30;FLD(__AOptimEval_77,2)=__AOptimEval_76;FLD(__AOptimEval_77,3)=__ASourceAn_6;
 PRD1F(1,__AOptimEval_80);FLD1(__AOptimEval_80,1)=__ASeq_6;
 CPPRD(__AOptimEval_76,1);
 PRD(3,2,__AOptimEval_83);FLD(__AOptimEval_83,1)=__ASourceAn_30;FLD(__AOptimEval_83,2)=__AOptimEval_76;FLD(__AOptimEval_83,3)=__ASourceAn_6;
 COPY(__AOptimEval_34,1);
 COPY(__AIdeSet_2,1);
 PRD1(3,__AOptimEval_97);FLD1(__AOptimEval_97,1)=__ANat_8;FLD1(__AOptimEval_97,2)=__AIdeSet_2;FLD1(__AOptimEval_97,3)=__AOptimEval_34;}

