Changeset 3428


Ignore:
Timestamp:
Feb 25, 2008, 2:39:06 PM (13 years ago)
Author:
yura
Message:
  • SVN properties.
  • Suppress warnings: using Comparable<?> instead of Comparable.
  • Fresh-generated compiler sources in Java.
Location:
to-imperative/trunk
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/compiler

    • Property svn:ignore
      •  

        old new  
        1 *.s
        2 *.dep
        3 rfp*.cc
        4 NativeJava.cc
        5 rfp*.hh
        6 rfp*.class
        7 rfp*.java
         1*.cc *.hh *.class *.java
  • to-imperative/trunk/java/compiler/org/refal/plus

    • Property svn:ignore deleted
  • to-imperative/trunk/java/compiler/org/refal/plus/comp

    • Property svn:ignore deleted
  • to-imperative/trunk/java/compiler/org/refal/plus/comp/ClassFormatReader.java

    • Property svn:keywords changed from "Author Date Id Revision" to Author Date Id Revision
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler

    • Property svn:ignore deleted
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/NativeJava.java

    • Property svn:eol-style set to native
    • Property svn:keywords set to Author Date Id Revision
    r3370 r3428  
    1212  static  final Expr _c_2 = Expr.fromSequence (")");
    1313  static  final Expr _c_3 = Expr.fromSequence ("(");
    14   static  final Expr _c_4 = Expr.concat ((Comparable) Expr.empty, (Comparable) Expr.empty);
    15   static  final Expr _c_5 = new Expr ((Comparable) Expr.empty);
     14  static  final Expr _c_4 = Expr.concat ((Comparable<?>) Expr.empty, (Comparable<?>) Expr.empty);
     15  static  final Expr _c_5 = new Expr ((Comparable<?>) Expr.empty);
    1616  static  final Expr _c_6 = Expr.fromSequence ("static");
    1717  static  final Expr _c_7 = new Expr (Symbol.newWord (""));
    1818  static  final Expr _c_8 = Expr.fromSequence (".");
    1919  static  final Expr _c_9 = Expr.fromSequence (",");
    20   static  final Expr _c_11 = new Expr (Symbol.newWord ("Integer (int x, double);"));
    21   static  final Expr _c_12 = new Expr (Symbol.newWord ("Integer Integer.toInteger (int x, double);"));
    22   static  final Expr _c_13 = new Expr (Symbol.newWord ("static Integer java.lang.Integer.toInteger (int x, double);"));
     20  static  final Expr _c_11 = new Expr (Symbol.newWord ("Integer (int x, double)"));
     21  static  final Expr _c_12 = new Expr (Symbol.newWord ("Integer Integer.toInteger (int x, double)"));
     22  static  final Expr _c_13 = new Expr (Symbol.newWord ("static Integer java.lang.Integer.toInteger (int x, double)"));
     23  static  final Expr _c_14 = new Expr (Symbol.newWord ("Integer Integer.toInteger"));
     24  static  final Expr _c_15 = new Expr (Symbol.newWord ("static Integer java.lang.Integer.toInteger"));
    2325
    2426  @RefalFormat("$func? Whitespace t = ;")
     
    143145      _exit1: _continue1: for ( ; ; _va_3.next ())
    144146      {
    145         Expr _ve__dollar_tmp_m_24_m_14 = _va_3.getLeft();
     147        Expr _ve__dollar_tmp_m_23_m_14 = _va_3.getLeft();
    146148        Expr _v_lsplit__arg = _va_3.getRight();
    147149        if (!_va_3.isValid ())
     
    155157          break _block1__branch1;
    156158        }
    157         int _v_len___dollar_tmp_m_24_m_23 = (_v_len1 - _v_len2);
     159        int _v_len___dollar_tmp_m_23_m_23 = (_v_len1 - _v_len2);
    158160        Expr _vt_term = Expr.empty;
    159161        _vt_term = _v_lsplit__arg.subexpr (0, 1);
    160         Expr _ve__dollar_tmp_m_24_m_23 = Expr.empty;
    161         _ve__dollar_tmp_m_24_m_23 = _v_lsplit__arg.subexpr ((0 + 1), _v_len___dollar_tmp_m_24_m_23);
     162        Expr _ve__dollar_tmp_m_23_m_23 = Expr.empty;
     163        _ve__dollar_tmp_m_23_m_23 = _v_lsplit__arg.subexpr ((0 + 1), _v_len___dollar_tmp_m_23_m_23);
    162164        _negation1: {
    163165          if (!Whitespace (_vt_term))
     
    184186      _exit1: _continue1: for ( ; ; _va_4.next ())
    185187      {
    186         Expr _ve__dollar_tmp_m_29_m_14 = _va_4.getLeft();
     188        Expr _ve__dollar_tmp_m_28_m_14 = _va_4.getLeft();
    187189        Expr _v_lsplit__arg = _va_4.getRight();
    188190        if (!_va_4.isValid ())
     
    196198          break _block1__branch1;
    197199        }
    198         int _v_len___dollar_tmp_m_29_m_23 = (_v_len1 - _v_len2);
     200        int _v_len___dollar_tmp_m_28_m_23 = (_v_len1 - _v_len2);
    199201        Expr _vt_term = Expr.empty;
    200202        _vt_term = _v_lsplit__arg.subexpr (0, 1);
    201         Expr _ve__dollar_tmp_m_29_m_23 = Expr.empty;
    202         _ve__dollar_tmp_m_29_m_23 = _v_lsplit__arg.subexpr ((0 + 1), _v_len___dollar_tmp_m_29_m_23);
     203        Expr _ve__dollar_tmp_m_28_m_23 = Expr.empty;
     204        _ve__dollar_tmp_m_28_m_23 = _v_lsplit__arg.subexpr ((0 + 1), _v_len___dollar_tmp_m_28_m_23);
    203205        if (!Whitespace (_vt_term))
    204206        {
     
    212214
    213215  @RefalFormat("$func DeclarationReader s = s s s s e;")
    214   static public void DeclarationReader (Expr _vs_string, Result _v_res1, Result _v_res2, Result _v_res3, Result _v_res4, Result _v_res5) throws RefalException
    215   {
    216     Result _v_ToChars1 = new Result (Expr.empty);
    217     refal.plus.Convert.ToChars (_vs_string, _v_ToChars1);
    218     if (_v_ToChars1.getExpr ().length () < 2)
     216  static public void DeclarationReader (Expr _vs_decl, Result _v_res1, Result _v_res2, Result _v_res3, Result _v_res4, Result _v_res5) throws RefalException
     217  {
     218    Result _ve_string = new Result (Expr.empty);
     219    refal.plus.Convert.ToChars (_vs_decl, _ve_string);
     220    _block1: {
     221      _block1__branch1: {
     222        if (_ve_string.getExpr ().length () < 2)
     223        {
     224          break _block1__branch1;
     225        }
     226        Expr.SplitIterator _va_5 = _ve_string.getExpr ().leftSplit(0);
     227        _exit1: _continue1: for ( ; ; _va_5.next ())
     228        {
     229          Expr _ve_head = _va_5.getLeft();
     230          Expr _v_lsplit__string = _va_5.getRight();
     231          if (!_va_5.isValid ())
     232          {
     233            break _block1__branch1;
     234          }
     235          if (_v_lsplit__string.length () < 2)
     236          {
     237            break _block1__branch1;
     238          }
     239          if (!_c_3.termEquals (_v_lsplit__string, 0))
     240          {
     241            continue _continue1;
     242          }
     243          Expr _v_subexpr__lsplit__string = _v_lsplit__string.subexpr ((0 + 1), (_v_lsplit__string.length () - (0 + 1 + 0)));
     244          Expr.SplitIterator _va_6 = _v_subexpr__lsplit__string.leftSplit(0);
     245          _exit2: _continue2: for ( ; ; _va_6.next ())
     246          {
     247            Expr _ve_args = _va_6.getLeft();
     248            Expr _v_lsplit__lsplit__string = _va_6.getRight();
     249            if (!_va_6.isValid ())
     250            {
     251              continue _continue1;
     252            }
     253            int _v_len1 = _v_lsplit__lsplit__string.length ();
     254            int _v_len2 = 1;
     255            if (_v_len1 < _v_len2)
     256            {
     257              continue _continue1;
     258            }
     259            int _v_len___dollar_tmp_m_35_m_37 = (_v_len1 - _v_len2);
     260            if (!_c_2.termEquals (_v_lsplit__lsplit__string, 0))
     261            {
     262              continue _continue2;
     263            }
     264            Expr _ve__dollar_tmp_m_35_m_37 = Expr.empty;
     265            _ve__dollar_tmp_m_35_m_37 = _v_lsplit__lsplit__string.subexpr ((0 + 1), _v_len___dollar_tmp_m_35_m_37);
     266            Result _gs_auxcall1 = new Result (Expr.empty);
     267            Result _gs_auxcall2 = new Result (Expr.empty);
     268            Result _gs_auxcall3 = new Result (Expr.empty);
     269            Result _gs_auxcall4 = new Result (Expr.empty);
     270            HeadReader (_ve_head, _gs_auxcall1, _gs_auxcall2, _gs_auxcall3, _gs_auxcall4);
     271            Result _ge_auxcall5 = new Result (Expr.empty);
     272            ArgsReader (_ve_args, _ge_auxcall5);
     273            _v_res1.assign (_gs_auxcall1.getExpr ());
     274            _v_res2.assign (_gs_auxcall2.getExpr ());
     275            _v_res3.assign (_gs_auxcall3.getExpr ());
     276            _v_res4.assign (_gs_auxcall4.getExpr ());
     277            _v_res5.assign (new Expr ((Comparable<?>) _ge_auxcall5.getExpr ()));
     278            break _exit2;
     279          }
     280          break _exit1;
     281        }
     282        break _block1;
     283      }
     284      HeadReader (_ve_string.getExpr (), _v_res1, _v_res2, _v_res3, _v_res4);
     285      _v_res5.assign (Expr.empty);
     286    }
     287  }
     288
     289  @RefalFormat("$func HeadReader e = s s s s;")
     290  static  void HeadReader (Expr _ve_head, Result _v_res1, Result _v_res2, Result _v_res3, Result _v_res4) throws RefalException
     291  {
     292    Result _ve_nws1 = new Result (Expr.empty);
     293    Result _ge_head__0 = new Result (Expr.empty);
     294    GetWhileNotWhitespace (_ve_head, _ve_nws1, _ge_head__0);
     295    Result _ve_nws2 = new Result (Expr.empty);
     296    GetWhileNotWhitespace (_ge_head__0.getExpr (), _ve_nws2, _ge_head__0);
     297    Result _ve_nws3 = new Result (Expr.empty);
     298    GetWhileNotWhitespace (_ge_head__0.getExpr (), _ve_nws3, _ge_head__0);
     299    if (!Whitespaces (_ge_head__0.getExpr ()))
    219300    {
    220       throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    221     }
    222     Expr.SplitIterator _va_5 = _v_ToChars1.getExpr ().leftSplit(0);
    223     _exit1: _continue1: for ( ; ; _va_5.next ())
     301      throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     302    }
     303    Expr _ve_static = Expr.empty;
     304    Expr _ve_resType = Expr.empty;
     305    Expr _ve_methodname = Expr.empty;
     306    _block1: {
     307      _block1__branch1: {
     308        Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable<?>) _ve_nws1.getExpr ()).toRight ((Comparable<?>) _ve_nws2.getExpr ()).toRight ((Comparable<?>) _ve_nws3.getExpr ()).yield ();
     309        if (_v_compose1.isSymbolAt (0))
     310        {
     311          break _block1__branch1;
     312        }
     313        Expr _v_deref__compose1 = (Expr) _v_compose1.at (0);
     314        int _v_len1 = _v_deref__compose1.length ();
     315        int _v_len2 = 0;
     316        if (_v_len1 < _v_len2)
     317        {
     318          break _block1__branch1;
     319        }
     320        int _v_len__methodname__2 = (_v_len1 - _v_len2);
     321        if (!_c_4.equals (_v_compose1, (0 + 1)))
     322        {
     323          break _block1__branch1;
     324        }
     325        Expr _ge_methodname__2 = Expr.empty;
     326        _ge_methodname__2 = _v_deref__compose1.subexpr (0, _v_len__methodname__2);
     327        _ve_static = Expr.empty;
     328        _ve_resType = Expr.empty;
     329        _ve_methodname = _ge_methodname__2;
     330        break _block1;
     331      }
     332      _block1__branch2: {
     333        Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable<?>) _ve_nws1.getExpr ()).toRight ((Comparable<?>) _ve_nws2.getExpr ()).toRight ((Comparable<?>) _ve_nws3.getExpr ()).yield ();
     334        if (_v_compose2.isSymbolAt (0))
     335        {
     336          break _block1__branch2;
     337        }
     338        if (_v_compose2.isSymbolAt ((0 + 1)))
     339        {
     340          break _block1__branch2;
     341        }
     342        Expr _v_deref__compose2 = (Expr) _v_compose2.at (0);
     343        Expr _v_deref__compose22 = (Expr) _v_compose2.at ((0 + 1));
     344        int _v_len3 = _v_deref__compose2.length ();
     345        int _v_len4 = 0;
     346        if (_v_len3 < _v_len4)
     347        {
     348          break _block1__branch2;
     349        }
     350        int _v_len__resType__2 = (_v_len3 - _v_len4);
     351        int _v_len5 = _v_deref__compose22.length ();
     352        int _v_len6 = 0;
     353        if (_v_len5 < _v_len6)
     354        {
     355          break _block1__branch2;
     356        }
     357        int _v_len__methodname__22 = (_v_len5 - _v_len6);
     358        if (!_c_5.termEquals (_v_compose2, (0 + 1 + 1)))
     359        {
     360          break _block1__branch2;
     361        }
     362        Expr _ge_resType__2 = Expr.empty;
     363        _ge_resType__2 = _v_deref__compose2.subexpr (0, _v_len__resType__2);
     364        Expr _ge_methodname__2 = Expr.empty;
     365        _ge_methodname__2 = _v_deref__compose22.subexpr (0, _v_len__methodname__22);
     366        _ve_static = Expr.empty;
     367        _ve_resType = _ge_resType__2;
     368        _ve_methodname = _ge_methodname__2;
     369        break _block1;
     370      }
     371      Expr _v_compose3 = Expr.getConcatenator ().toRight ((Comparable<?>) _ve_nws1.getExpr ()).toRight ((Comparable<?>) _ve_nws2.getExpr ()).toRight ((Comparable<?>) _ve_nws3.getExpr ()).yield ();
     372      if (_v_compose3.isSymbolAt (0))
     373      {
     374        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     375      }
     376      if (_v_compose3.isSymbolAt ((0 + 1)))
     377      {
     378        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     379      }
     380      if (_v_compose3.isSymbolAt ((0 + 1 + 1)))
     381      {
     382        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     383      }
     384      Expr _v_deref__compose3 = (Expr) _v_compose3.at (0);
     385      Expr _v_deref__compose32 = (Expr) _v_compose3.at ((0 + 1));
     386      Expr _v_deref__compose33 = (Expr) _v_compose3.at ((0 + 1 + 1));
     387      int _v_len7 = _v_deref__compose3.length ();
     388      int _v_len8 = 0;
     389      if (_v_len7 < _v_len8)
     390      {
     391        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     392      }
     393      int _v_len__static__2 = (_v_len7 - _v_len8);
     394      int _v_len9 = _v_deref__compose32.length ();
     395      int _v_len10 = 0;
     396      if (_v_len9 < _v_len10)
     397      {
     398        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     399      }
     400      int _v_len__resType__22 = (_v_len9 - _v_len10);
     401      int _v_len11 = _v_deref__compose33.length ();
     402      int _v_len12 = 0;
     403      if (_v_len11 < _v_len12)
     404      {
     405        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     406      }
     407      int _v_len__methodname__23 = (_v_len11 - _v_len12);
     408      Expr _ge_static__2 = Expr.empty;
     409      _ge_static__2 = _v_deref__compose3.subexpr (0, _v_len__static__2);
     410      Expr _ge_resType__2 = Expr.empty;
     411      _ge_resType__2 = _v_deref__compose32.subexpr (0, _v_len__resType__22);
     412      Expr _ge_methodname__2 = Expr.empty;
     413      _ge_methodname__2 = _v_deref__compose33.subexpr (0, _v_len__methodname__23);
     414      _ve_static = _ge_static__2;
     415      _ve_resType = _ge_resType__2;
     416      _ve_methodname = _ge_methodname__2;
     417    }
     418    _block2: {
     419      _block2__branch1: {
     420        if (_ve_static.length () != 0)
     421        {
     422          break _block2__branch1;
     423        }
     424        break _block2;
     425      }
     426      if (_ve_static.length () != 6)
     427      {
     428        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     429      }
     430      if (!_c_6.equals (_ve_static, 0))
     431      {
     432        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     433      }
     434    }
     435    Result _vs_static = new Result (Expr.empty);
     436    refal.plus.Convert.ToWord (_ve_static, _vs_static);
     437    Result _vs_resType = new Result (Expr.empty);
     438    refal.plus.Convert.ToWord (_ve_resType, _vs_resType);
     439    Expr _vs_className = Expr.empty;
     440    Expr _vs_methodName = Expr.empty;
     441    _block3: {
     442      _block3__branch1: {
     443        if (!_vs_resType.getExpr ().termEquals (_c_7, 0))
     444        {
     445          break _block3__branch1;
     446        }
     447        Result _gs_auxcall1 = new Result (Expr.empty);
     448        refal.plus.Convert.ToWord (_ve_methodname, _gs_auxcall1);
     449        _vs_className = _gs_auxcall1.getExpr ();
     450        _vs_methodName = _c_7;
     451        break _block3;
     452      }
     453      if (_ve_methodname.length () < 1)
     454      {
     455        throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     456      }
     457      Expr.SplitIterator _va_7 = _ve_methodname.rightSplit(0);
     458      _exit1: _continue1: for ( ; ; _va_7.prev ())
     459      {
     460        Expr _v_rsplit__methodname = _va_7.getLeft();
     461        Expr _ve_methodname1 = _va_7.getRight();
     462        if (!_va_7.isValid ())
     463        {
     464          throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     465        }
     466        int _v_len13 = _v_rsplit__methodname.length ();
     467        int _v_len14 = 1;
     468        if (_v_len13 < _v_len14)
     469        {
     470          throw new RefalException ("org.refal.plus.compiler.NativeJava", "HeadReader", "Unexpected fail");
     471        }
     472        int _v_len__classname = (_v_len13 - _v_len14);
     473        if (!_c_8.termEquals (_v_rsplit__methodname, (0 + _v_len__classname)))
     474        {
     475          continue _continue1;
     476        }
     477        Expr _ve_classname = Expr.empty;
     478        _ve_classname = _v_rsplit__methodname.subexpr (0, _v_len__classname);
     479        Result _gs_auxcall2 = new Result (Expr.empty);
     480        refal.plus.Convert.ToWord (_ve_classname, _gs_auxcall2);
     481        Result _va_8 = new Result ();
     482        refal.plus.Convert.ToWord (_ve_methodname1, _va_8);
     483        _vs_methodName = _va_8.getExpr ();
     484        _vs_className = _gs_auxcall2.getExpr ();
     485        break _exit1;
     486      }
     487    }
     488    _v_res1.assign (_vs_static.getExpr ());
     489    _v_res2.assign (_vs_resType.getExpr ());
     490    _v_res3.assign (_vs_className);
     491    _v_res4.assign (_vs_methodName);
     492  }
     493
     494  @RefalFormat("$func ArgsReader e = e;")
     495  static  void ArgsReader (Expr _ve_args, Result _v_res1) throws RefalException
     496  {
     497    Expr _ve_argTypes = Expr.empty;
     498    Expr _ge_args__0 = _ve_args;
     499    _exit__iter1: for ( ; ; )
    224500    {
    225       Expr _ve_head = _va_5.getLeft();
    226       Expr _v_lsplit__ToChars1 = _va_5.getRight();
    227       if (!_va_5.isValid ())
    228       {
    229         throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    230       }
    231       if (_v_lsplit__ToChars1.length () < 2)
    232       {
    233         throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    234       }
    235       if (!_c_3.termEquals (_v_lsplit__ToChars1, 0))
    236       {
    237         continue _continue1;
    238       }
    239       Expr _v_subexpr__lsplit__ToChars1 = _v_lsplit__ToChars1.subexpr ((0 + 1), (_v_lsplit__ToChars1.length () - (0 + 1 + 0)));
    240       Expr.SplitIterator _va_6 = _v_subexpr__lsplit__ToChars1.leftSplit(0);
    241       _exit2: _continue2: for ( ; ; _va_6.next ())
    242       {
    243         Expr _ve_args = _va_6.getLeft();
    244         Expr _v_lsplit__lsplit__ToChars1 = _va_6.getRight();
    245         if (!_va_6.isValid ())
    246         {
    247           continue _continue1;
    248         }
    249         int _v_len1 = _v_lsplit__lsplit__ToChars1.length ();
    250         int _v_len2 = 1;
    251         if (_v_len1 < _v_len2)
    252         {
    253           continue _continue1;
    254         }
    255         int _v_len___dollar_tmp_m_33_m_47 = (_v_len1 - _v_len2);
    256         if (!_c_2.termEquals (_v_lsplit__lsplit__ToChars1, 0))
    257         {
    258           continue _continue2;
    259         }
    260         Expr _ve__dollar_tmp_m_33_m_47 = Expr.empty;
    261         _ve__dollar_tmp_m_33_m_47 = _v_lsplit__lsplit__ToChars1.subexpr ((0 + 1), _v_len___dollar_tmp_m_33_m_47);
    262         Result _ve_nws1 = new Result (Expr.empty);
    263         Result _gedd_head1 = new Result (_ve_head);
    264         GetWhileNotWhitespace (_gedd_head1.getExpr (), _ve_nws1, _gedd_head1);
    265         Result _ve_nws2 = new Result (Expr.empty);
    266         GetWhileNotWhitespace (_gedd_head1.getExpr (), _ve_nws2, _gedd_head1);
    267         Result _ve_nws3 = new Result (Expr.empty);
    268         GetWhileNotWhitespace (_gedd_head1.getExpr (), _ve_nws3, _gedd_head1);
    269         if (!Whitespaces (_gedd_head1.getExpr ()))
    270         {
    271           throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    272         }
    273         Expr _ve_static = Expr.empty;
    274         Expr _ve_resType = Expr.empty;
    275         Expr _ve_methodname = Expr.empty;
    276         _block1: {
    277           _block1__branch1: {
    278             Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable) _ve_nws1.getExpr ()).toRight ((Comparable) _ve_nws2.getExpr ()).toRight ((Comparable) _ve_nws3.getExpr ()).yield ();
    279             if (_v_compose1.isSymbolAt (0))
    280             {
    281               break _block1__branch1;
    282             }
    283             Expr _v_deref__compose1 = (Expr) _v_compose1.at (0);
    284             int _v_len3 = _v_deref__compose1.length ();
    285             int _v_len4 = 0;
    286             if (_v_len3 < _v_len4)
    287             {
    288               break _block1__branch1;
    289             }
    290             int _v_len__methodname__2 = (_v_len3 - _v_len4);
    291             if (!_c_4.equals (_v_compose1, (0 + 1)))
    292             {
    293               break _block1__branch1;
    294             }
    295             Expr _ge_methodname__2 = Expr.empty;
    296             _ge_methodname__2 = _v_deref__compose1.subexpr (0, _v_len__methodname__2);
    297             _ve_static = Expr.empty;
    298             _ve_resType = Expr.empty;
    299             _ve_methodname = _ge_methodname__2;
    300             break _block1;
    301           }
    302           _block1__branch2: {
    303             Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable) _ve_nws1.getExpr ()).toRight ((Comparable) _ve_nws2.getExpr ()).toRight ((Comparable) _ve_nws3.getExpr ()).yield ();
    304             if (_v_compose2.isSymbolAt (0))
    305             {
    306               break _block1__branch2;
    307             }
    308             if (_v_compose2.isSymbolAt ((0 + 1)))
    309             {
    310               break _block1__branch2;
    311             }
    312             Expr _v_deref__compose2 = (Expr) _v_compose2.at (0);
    313             Expr _v_deref__compose22 = (Expr) _v_compose2.at ((0 + 1));
    314             int _v_len5 = _v_deref__compose22.length ();
    315             int _v_len6 = 0;
    316             if (_v_len5 < _v_len6)
    317             {
    318               break _block1__branch2;
    319             }
    320             int _v_len__methodname__22 = (_v_len5 - _v_len6);
    321             int _v_len7 = _v_deref__compose2.length ();
    322             int _v_len8 = 0;
    323             if (_v_len7 < _v_len8)
    324             {
    325               break _block1__branch2;
    326             }
    327             int _v_len__resType__2 = (_v_len7 - _v_len8);
    328             if (!_c_5.termEquals (_v_compose2, (0 + 1 + 1)))
    329             {
    330               break _block1__branch2;
    331             }
    332             Expr _ge_resType__2 = Expr.empty;
    333             _ge_resType__2 = _v_deref__compose2.subexpr (0, _v_len__resType__2);
    334             Expr _ge_methodname__2 = Expr.empty;
    335             _ge_methodname__2 = _v_deref__compose22.subexpr (0, _v_len__methodname__22);
    336             _ve_static = Expr.empty;
    337             _ve_resType = _ge_resType__2;
    338             _ve_methodname = _ge_methodname__2;
    339             break _block1;
    340           }
    341           Expr _v_compose3 = Expr.getConcatenator ().toRight ((Comparable) _ve_nws1.getExpr ()).toRight ((Comparable) _ve_nws2.getExpr ()).toRight ((Comparable) _ve_nws3.getExpr ()).yield ();
    342           if (_v_compose3.isSymbolAt (0))
    343           {
    344             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    345           }
    346           if (_v_compose3.isSymbolAt ((0 + 1)))
    347           {
    348             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    349           }
    350           if (_v_compose3.isSymbolAt ((0 + 1 + 1)))
    351           {
    352             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    353           }
    354           Expr _v_deref__compose3 = (Expr) _v_compose3.at (0);
    355           Expr _v_deref__compose32 = (Expr) _v_compose3.at ((0 + 1));
    356           Expr _v_deref__compose33 = (Expr) _v_compose3.at ((0 + 1 + 1));
    357           int _v_len9 = _v_deref__compose3.length ();
    358           int _v_len10 = 0;
    359           if (_v_len9 < _v_len10)
    360           {
    361             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    362           }
    363           int _v_len__static__2 = (_v_len9 - _v_len10);
    364           int _v_len11 = _v_deref__compose33.length ();
    365           int _v_len12 = 0;
    366           if (_v_len11 < _v_len12)
    367           {
    368             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    369           }
    370           int _v_len__methodname__23 = (_v_len11 - _v_len12);
    371           int _v_len13 = _v_deref__compose32.length ();
    372           int _v_len14 = 0;
    373           if (_v_len13 < _v_len14)
    374           {
    375             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    376           }
    377           int _v_len__resType__22 = (_v_len13 - _v_len14);
    378           Expr _ge_static__2 = Expr.empty;
    379           _ge_static__2 = _v_deref__compose3.subexpr (0, _v_len__static__2);
    380           Expr _ge_resType__2 = Expr.empty;
    381           _ge_resType__2 = _v_deref__compose32.subexpr (0, _v_len__resType__22);
    382           Expr _ge_methodname__2 = Expr.empty;
    383           _ge_methodname__2 = _v_deref__compose33.subexpr (0, _v_len__methodname__23);
    384           _ve_static = _ge_static__2;
    385           _ve_resType = _ge_resType__2;
    386           _ve_methodname = _ge_methodname__2;
    387         }
    388         _block2: {
    389           _block2__branch1: {
    390             if (_ve_static.length () != 0)
     501      _iter1: {
     502        if (!Whitespaces (_ge_args__0))
     503        {
     504          break _iter1;
     505        }
     506        _v_res1.assign (_ve_argTypes);
     507        break _exit__iter1;
     508      }
     509      Expr _ve_arg = Expr.empty;
     510      Expr _ve_tail = Expr.empty;
     511      _block2: {
     512        _block2__branch1: {
     513          if (_ge_args__0.length () < 1)
     514          {
     515            break _block2__branch1;
     516          }
     517          Expr.SplitIterator _va_9 = _ge_args__0.leftSplit(0);
     518          _exit1: _continue1: for ( ; ; _va_9.next ())
     519          {
     520            Expr _ge_arg__4 = _va_9.getLeft();
     521            Expr _v_lsplit__args__0 = _va_9.getRight();
     522            if (!_va_9.isValid ())
    391523            {
    392524              break _block2__branch1;
    393525            }
    394             break _block2;
    395           }
    396           if (_ve_static.length () != 6)
    397           {
    398             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    399           }
    400           if (!_c_6.equals (_ve_static, 0))
    401           {
    402             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    403           }
    404         }
    405         Result _vs_static = new Result (Expr.empty);
    406         refal.plus.Convert.ToWord (_ve_static, _vs_static);
    407         Result _vs_resType = new Result (Expr.empty);
    408         refal.plus.Convert.ToWord (_ve_resType, _vs_resType);
    409         Expr _vs_className = Expr.empty;
    410         Expr _vs_methodName = Expr.empty;
    411         _block3: {
    412           _block3__branch1: {
    413             if (!_vs_resType.getExpr ().termEquals (_c_7, 0))
    414             {
    415               break _block3__branch1;
    416             }
    417             Result _gs_auxcall1 = new Result (Expr.empty);
    418             refal.plus.Convert.ToWord (_ve_methodname, _gs_auxcall1);
    419             _vs_className = _gs_auxcall1.getExpr ();
    420             _vs_methodName = _c_7;
    421             break _block3;
    422           }
    423           if (_ve_methodname.length () < 1)
    424           {
    425             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    426           }
    427           Expr.SplitIterator _va_7 = _ve_methodname.rightSplit(0);
    428           _exit3: _continue3: for ( ; ; _va_7.prev ())
    429           {
    430             Expr _v_rsplit__methodname = _va_7.getLeft();
    431             Expr _ve_methodname1 = _va_7.getRight();
    432             if (!_va_7.isValid ())
    433             {
    434               throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    435             }
    436             int _v_len15 = _v_rsplit__methodname.length ();
    437             int _v_len16 = 1;
    438             if (_v_len15 < _v_len16)
    439             {
    440               throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    441             }
    442             int _v_len__classname = (_v_len15 - _v_len16);
    443             if (!_c_8.termEquals (_v_rsplit__methodname, (0 + _v_len__classname)))
     526            int _v_len1 = _v_lsplit__args__0.length ();
     527            int _v_len2 = 1;
     528            if (_v_len1 < _v_len2)
     529            {
     530              break _block2__branch1;
     531            }
     532            int _v_len__tail__4 = (_v_len1 - _v_len2);
     533            if (!_c_9.termEquals (_v_lsplit__args__0, 0))
     534            {
     535              continue _continue1;
     536            }
     537            Expr _ge_tail__4 = Expr.empty;
     538            _ge_tail__4 = _v_lsplit__args__0.subexpr ((0 + 1), _v_len__tail__4);
     539            _ve_arg = _ge_arg__4;
     540            _ve_tail = _ge_tail__4;
     541            break _exit1;
     542          }
     543          break _block2;
     544        }
     545        int _v_len3 = _ge_args__0.length ();
     546        int _v_len4 = 0;
     547        if (_v_len3 < _v_len4)
     548        {
     549          throw new RefalException ("org.refal.plus.compiler.NativeJava", "ArgsReader", "Unexpected fail");
     550        }
     551        int _v_len___dollar_tmp_m_62_m_8 = (_v_len3 - _v_len4);
     552        Expr _ve__dollar_tmp_m_62_m_8 = Expr.empty;
     553        _ve__dollar_tmp_m_62_m_8 = _ge_args__0.subexpr (0, _v_len___dollar_tmp_m_62_m_8);
     554        _ve_arg = _ge_args__0;
     555        _ve_tail = Expr.empty;
     556      }
     557      if (_ve_arg.length () < 0)
     558      {
     559        throw new RefalException ("org.refal.plus.compiler.NativeJava", "ArgsReader", "Unexpected fail");
     560      }
     561      Expr.SplitIterator _va_10 = _ve_arg.rightSplit(0);
     562      _exit2: _continue2: for ( ; ; _va_10.prev ())
     563      {
     564        Expr _v_rsplit__arg = _va_10.getLeft();
     565        Expr _ve_ws13 = _va_10.getRight();
     566        if (!_va_10.isValid ())
     567        {
     568          throw new RefalException ("org.refal.plus.compiler.NativeJava", "ArgsReader", "Unexpected fail");
     569        }
     570        if (_v_rsplit__arg.length () < 0)
     571        {
     572          throw new RefalException ("org.refal.plus.compiler.NativeJava", "ArgsReader", "Unexpected fail");
     573        }
     574        Expr.SplitIterator _va_11 = _v_rsplit__arg.rightSplit(0);
     575        _exit3: _continue3: for ( ; ; _va_11.prev ())
     576        {
     577          Expr _v_rsplit__rsplit__arg = _va_11.getLeft();
     578          Expr _ve_argName = _va_11.getRight();
     579          if (!_va_11.isValid ())
     580          {
     581            continue _continue2;
     582          }
     583          if (_v_rsplit__rsplit__arg.length () < 0)
     584          {
     585            continue _continue2;
     586          }
     587          Expr.SplitIterator _va_12 = _v_rsplit__rsplit__arg.rightSplit(0);
     588          _exit4: _continue4: for ( ; ; _va_12.prev ())
     589          {
     590            Expr _v_rsplit__rsplit__rsplit__arg = _va_12.getLeft();
     591            Expr _ve_ws12 = _va_12.getRight();
     592            if (!_va_12.isValid ())
    444593            {
    445594              continue _continue3;
    446595            }
    447             Expr _ve_classname = Expr.empty;
    448             _ve_classname = _v_rsplit__methodname.subexpr (0, _v_len__classname);
    449             Result _gs_auxcall2 = new Result (Expr.empty);
    450             refal.plus.Convert.ToWord (_ve_classname, _gs_auxcall2);
    451             Result _va_8 = new Result ();
    452             refal.plus.Convert.ToWord (_ve_methodname1, _va_8);
    453             _vs_methodName = _va_8.getExpr ();
    454             _vs_className = _gs_auxcall2.getExpr ();
    455             break _exit3;
    456           }
    457         }
    458         Expr _ve_argTypes = Expr.empty;
    459         Expr _ge_args__2 = _ve_args;
    460         _exit__iter1: for ( ; ; )
    461         {
    462           _iter1: {
    463             if (!Whitespaces (_ge_args__2))
    464             {
    465               break _iter1;
    466             }
    467             _v_res1.assign (_vs_static.getExpr ());
    468             _v_res2.assign (_vs_resType.getExpr ());
    469             _v_res3.assign (_vs_className);
    470             _v_res4.assign (_vs_methodName);
    471             _v_res5.assign (_ve_argTypes);
    472             break _exit__iter1;
    473           }
    474           Expr _ve_arg = Expr.empty;
    475           Expr _ve_tail = Expr.empty;
    476           _block5: {
    477             _block5__branch1: {
    478               if (_ge_args__2.length () < 1)
    479               {
    480                 break _block5__branch1;
    481               }
    482               Expr.SplitIterator _va_9 = _ge_args__2.leftSplit(0);
    483               _exit4: _continue4: for ( ; ; _va_9.next ())
    484               {
    485                 Expr _ge_arg__6 = _va_9.getLeft();
    486                 Expr _v_lsplit__args__2 = _va_9.getRight();
    487                 if (!_va_9.isValid ())
    488                 {
    489                   break _block5__branch1;
    490                 }
    491                 int _v_len17 = _v_lsplit__args__2.length ();
    492                 int _v_len18 = 1;
    493                 if (_v_len17 < _v_len18)
    494                 {
    495                   break _block5__branch1;
    496                 }
    497                 int _v_len__tail__6 = (_v_len17 - _v_len18);
    498                 if (!_c_9.termEquals (_v_lsplit__args__2, 0))
    499                 {
    500                   continue _continue4;
    501                 }
    502                 Expr _ge_tail__6 = Expr.empty;
    503                 _ge_tail__6 = _v_lsplit__args__2.subexpr ((0 + 1), _v_len__tail__6);
    504                 _ve_arg = _ge_arg__6;
    505                 _ve_tail = _ge_tail__6;
    506                 break _exit4;
    507               }
    508               break _block5;
    509             }
    510             int _v_len19 = _ge_args__2.length ();
    511             int _v_len20 = 0;
    512             if (_v_len19 < _v_len20)
    513             {
    514               throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    515             }
    516             int _v_len___dollar_tmp_m_53_m_8 = (_v_len19 - _v_len20);
    517             Expr _ve__dollar_tmp_m_53_m_8 = Expr.empty;
    518             _ve__dollar_tmp_m_53_m_8 = _ge_args__2.subexpr (0, _v_len___dollar_tmp_m_53_m_8);
    519             _ve_arg = _ge_args__2;
    520             _ve_tail = Expr.empty;
    521           }
    522           if (_ve_arg.length () < 0)
    523           {
    524             throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    525           }
    526           Expr.SplitIterator _va_10 = _ve_arg.rightSplit(0);
    527           _exit5: _continue5: for ( ; ; _va_10.prev ())
    528           {
    529             Expr _v_rsplit__arg = _va_10.getLeft();
    530             Expr _ve_ws13 = _va_10.getRight();
    531             if (!_va_10.isValid ())
    532             {
    533               throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    534             }
    535             if (_v_rsplit__arg.length () < 0)
    536             {
    537               throw new RefalException ("org.refal.plus.compiler.NativeJava", "DeclarationReader", "Unexpected fail");
    538             }
    539             Expr.SplitIterator _va_11 = _v_rsplit__arg.rightSplit(0);
    540             _exit6: _continue6: for ( ; ; _va_11.prev ())
    541             {
    542               Expr _v_rsplit__rsplit__arg = _va_11.getLeft();
    543               Expr _ve_argName = _va_11.getRight();
    544               if (!_va_11.isValid ())
     596            if (_v_rsplit__rsplit__rsplit__arg.length () < 0)
     597            {
     598              continue _continue3;
     599            }
     600            Expr.SplitIterator _va_13 = _v_rsplit__rsplit__rsplit__arg.rightSplit(0);
     601            _exit5: _continue5: for ( ; ; _va_13.prev ())
     602            {
     603              Expr _ve_ws11 = _va_13.getLeft();
     604              Expr _ve_argType = _va_13.getRight();
     605              if (!_va_13.isValid ())
     606              {
     607                continue _continue4;
     608              }
     609              if (_ve_ws11.length () < 0)
     610              {
     611                continue _continue4;
     612              }
     613              if (!NoWhitespaces (_ve_argType))
    545614              {
    546615                continue _continue5;
    547616              }
    548               if (_v_rsplit__rsplit__arg.length () < 0)
     617              if (!NoWhitespaces (_ve_argName))
    549618              {
    550619                continue _continue5;
    551620              }
    552               Expr.SplitIterator _va_12 = _v_rsplit__rsplit__arg.rightSplit(0);
    553               _exit7: _continue7: for ( ; ; _va_12.prev ())
    554               {
    555                 Expr _v_rsplit__rsplit__rsplit__arg = _va_12.getLeft();
    556                 Expr _ve_ws12 = _va_12.getRight();
    557                 if (!_va_12.isValid ())
    558                 {
    559                   continue _continue6;
    560                 }
    561                 if (_v_rsplit__rsplit__rsplit__arg.length () < 0)
    562                 {
    563                   continue _continue6;
    564                 }
    565                 Expr.SplitIterator _va_13 = _v_rsplit__rsplit__rsplit__arg.rightSplit(0);
    566                 _exit8: _continue8: for ( ; ; _va_13.prev ())
    567                 {
    568                   Expr _ve_ws11 = _va_13.getLeft();
    569                   Expr _ve_argType = _va_13.getRight();
    570                   if (!_va_13.isValid ())
    571                   {
    572                     continue _continue7;
    573                   }
    574                   if (_ve_ws11.length () < 0)
    575                   {
    576                     continue _continue7;
    577                   }
    578                   if (!NoWhitespaces (_ve_argType))
    579                   {
    580                     continue _continue8;
    581                   }
    582                   if (!NoWhitespaces (_ve_argName))
    583                   {
    584                     continue _continue8;
    585                   }
    586                   if (!Whitespaces (_ve_ws11))
    587                   {
    588                     continue _continue8;
    589                   }
    590                   if (!Whitespaces (_ve_ws12))
    591                   {
    592                     continue _continue8;
    593                   }
    594                   if (!Whitespaces (_ve_ws13))
    595                   {
    596                     continue _continue8;
    597                   }
    598                   Result _gs_auxcall3 = new Result (Expr.empty);
    599                   refal.plus.Convert.ToWord (_ve_argType, _gs_auxcall3);
    600                   _ve_argTypes = Expr.concat (_ve_argTypes, _gs_auxcall3.getExpr ());
    601                   _ge_args__2 = _ve_tail;
    602                   break _exit8;
    603                 }
    604                 break _exit7;
    605               }
    606               break _exit6;
    607             }
    608             break _exit5;
    609           }
     621              if (!Whitespaces (_ve_ws11))
     622              {
     623                continue _continue5;
     624              }
     625              if (!Whitespaces (_ve_ws12))
     626              {
     627                continue _continue5;
     628              }
     629              if (!Whitespaces (_ve_ws13))
     630              {
     631                continue _continue5;
     632              }
     633              Result _gs_auxcall1 = new Result (Expr.empty);
     634              refal.plus.Convert.ToWord (_ve_argType, _gs_auxcall1);
     635              _ve_argTypes = Expr.concat (_ve_argTypes, _gs_auxcall1.getExpr ());
     636              _ge_args__0 = _ve_tail;
     637              break _exit5;
     638            }
     639            break _exit4;
     640          }
     641          break _exit3;
    610642        }
    611643        break _exit2;
    612644      }
    613       break _exit1;
    614645    }
    615646  }
     
    635666    PrintDeclReader (_c_12);
    636667    PrintDeclReader (_c_13);
     668    PrintDeclReader (_c_14);
     669    PrintDeclReader (_c_15);
    637670    _v_res1.assign (Expr.empty);
    638671  }
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/rfp_as2as.java

    r3370 r3428  
    1111  static  final Expr _c_2 = new Expr (Symbol.newWord ("BRANCH"));
    1212  static  final Expr _c_3 = new Expr (Symbol.newWord ("DBG"));
    13   static  final Expr _c_28 = Expr.concat (Symbol.newWord ("RESULT"), (Comparable) _c_1);
     13  static  final Expr _c_28 = Expr.concat (Symbol.newWord ("RESULT"), (Comparable<?>) _c_1);
    1414  static  final Expr _c_4 = _c_28.subexpr (0, 1);
    1515  static  final Expr _c_5 = new Expr (Symbol.newInt ("1"));
     
    2727  static  final Expr _c_17 = new Expr (Symbol.newWord ("TRY"));
    2828  static  final Expr _c_18 = new Expr (Symbol.newWord ("ERROR"));
    29   static  final Expr _c_19 = new Expr ((Comparable) _c_14);
     29  static  final Expr _c_19 = new Expr ((Comparable<?>) _c_14);
    3030  static  final Expr _c_20 = Expr.concat (Symbol.newWord ("aux"), Symbol.newWord ("block"));
    3131  static  final Expr _c_21 = new Expr (Symbol.newWord ("CALL"));
     
    5252    }
    5353  });
    54   static  final Expr _c_33 = Expr.concat ((Comparable) Expr.empty, (Comparable) Expr.empty);
     54  static  final Expr _c_33 = Expr.concat ((Comparable<?>) Expr.empty, (Comparable<?>) Expr.empty);
    5555  static  final Expr _c_34 = Expr.getConcatenator (3).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Unexpected fail")).yield ();
    5656  static  final Expr _c_35 = new Expr (Symbol.newWord ("_"));
     
    185185                      Expr _v_deref__deref__deref__item = (Expr) _v_deref__deref__item.at ((0 + 1));
    186186                      Expr _v_deref__deref__deref__item2 = (Expr) _v_deref__deref__item.at ((0 + 1 + 1));
    187                       int _v_len9 = _v_deref__deref__deref__item2.length ();
     187                      int _v_len9 = _v_deref__deref__deref__item.length ();
    188188                      int _v_len10 = 0;
    189189                      if (_v_len9 < _v_len10)
     
    191191                        break _block4__branch1;
    192192                      }
    193                       int _v_len__line = (_v_len9 - _v_len10);
    194                       int _v_len11 = _v_deref__deref__deref__item.length ();
     193                      int _v_len__file = (_v_len9 - _v_len10);
     194                      int _v_len11 = _v_deref__deref__deref__item2.length ();
    195195                      int _v_len12 = 0;
    196196                      if (_v_len11 < _v_len12)
     
    198198                        break _block4__branch1;
    199199                      }
    200                       int _v_len__file = (_v_len11 - _v_len12);
     200                      int _v_len__line = (_v_len11 - _v_len12);
    201201                      if (!_vt_name.termEquals (_v_deref__item, (0 + 1 + 1 + 1)))
    202202                      {
     
    281281            }
    282282            int _v_len__in = (_v_len17 - _v_len18);
    283             int _v_len19 = _v_deref__deref__item33.length ();
    284             int _v_len20 = 1;
     283            int _v_len19 = _v_deref__deref__item32.length ();
     284            int _v_len20 = 0;
    285285            if (_v_len19 < _v_len20)
    286286            {
    287287              break _block2__branch1;
    288288            }
    289             int _v_len__branch = (_v_len19 - _v_len20);
    290             int _v_len21 = _v_deref__deref__item32.length ();
    291             int _v_len22 = 0;
     289            int _v_len__out = (_v_len19 - _v_len20);
     290            int _v_len21 = _v_deref__deref__item33.length ();
     291            int _v_len22 = 1;
    292292            if (_v_len21 < _v_len22)
    293293            {
    294294              break _block2__branch1;
    295295            }
    296             int _v_len__out = (_v_len21 - _v_len22);
     296            int _v_len__branch = (_v_len21 - _v_len22);
    297297            if (!_v_deref__item3.isSymbolAt (0))
    298298            {
     
    394394                rfp_helper.Del_Pragmas (_ge_in__6, _ge_auxcall2);
    395395                Result _ge_auxcall3 = new Result (Expr.empty);
    396                 rfp_debug.Add_Debug (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_4).toRight (_ve_p).toRight (_ge_in__6).yield (), _ge_branch__5__6), _ge_auxcall3);
     396                rfp_debug.Add_Debug (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_4).toRight (_ve_p).toRight (_ge_in__6).yield (), _ge_branch__5__6), _ge_auxcall3);
    397397                Result _va_6 = new Result ();
    398398                rfp_helper.Del_Pragmas (_ge_auxcall3.getExpr (), _va_6);
     
    427427            Unstick_Blocks (_ge_branch__5__6__7, _va_8, _v_Unstick__Blocks1);
    428428            _ge_branch__5__6__7 = _va_8.getExpr ();
    429             Expr _vt__dollar_tmp_m_85_m_46 = new Expr ((Comparable) _v_Unstick__Blocks1.getExpr ());
     429            Expr _vt__dollar_tmp_m_85_m_46 = new Expr ((Comparable<?>) _v_Unstick__Blocks1.getExpr ());
    430430            Result _ge_auxcall5 = new Result (Expr.empty);
    431431            rfp_vars.Vars (_ge_in__6__7, _ge_auxcall5);
     
    433433            Rename_Vars (_c_6, _ge_auxcall5.getExpr (), Expr.empty, _ge_branch__5__6__7, _va_9);
    434434            _ge_branch__5__6__7 = _va_9.getExpr ();
    435             _ge_item__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_link).toRight (_vs_tag).toRight (_vt_name).toRight ((Comparable) _ge_in__6__7).toRight ((Comparable) _ve_out).toRight ((Comparable) Expr.concat (_c_2, _ge_branch__5__6__7)).yield ());
     435            _ge_item__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_link).toRight (_vs_tag).toRight (_vt_name).toRight ((Comparable<?>) _ge_in__6__7).toRight ((Comparable<?>) _ve_out).toRight ((Comparable<?>) Expr.concat (_c_2, _ge_branch__5__6__7)).yield ());
    436436            break _block2;
    437437          }
     
    869869                  Result _v_Unstick__Blocks1 = new Result (Expr.empty);
    870870                  Unstick_Blocks (_ve_R, _v_Unstick__Blocks1, _v_res2);
    871                   _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable) Expr.concat (_vs_block, _ve_br)).toRight ((Comparable) Expr.concat (_c_12, _ve_aux.getExpr ())).toRight ((Comparable) Expr.concat (_c_4, _ve_aux.getExpr ())).toRight (_v_Unstick__Blocks1.getExpr ()).yield ());
     871                  _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable<?>) Expr.concat (_vs_block, _ve_br)).toRight ((Comparable<?>) Expr.concat (_c_12, _ve_aux.getExpr ())).toRight ((Comparable<?>) Expr.concat (_c_4, _ve_aux.getExpr ())).toRight (_v_Unstick__Blocks1.getExpr ()).yield ());
    872872                  break _block3;
    873873                }
     
    879879                  Result _ge_auxcall2 = new Result (Expr.empty);
    880880                  rfp_format.MSG (_ve_Fes, _ge_auxcall2);
    881                   _v_res1.assign (Expr.concat (_ve_L, (Comparable) Expr.concat (_vs_block, _ve_br)));
     881                  _v_res1.assign (Expr.concat (_ve_L, (Comparable<?>) Expr.concat (_vs_block, _ve_br)));
    882882                  _v_res2.assign (_ge_auxcall2.getExpr ());
    883883                  break _block3;
     
    885885                Result _v_Unstick__Blocks2 = new Result (Expr.empty);
    886886                Unstick_Blocks (_ve_R, _v_Unstick__Blocks2, _v_res2);
    887                 _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable) Expr.concat (_vs_block, _ve_br)).toRight (_v_Unstick__Blocks2.getExpr ()).yield ());
     887                _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable<?>) Expr.concat (_vs_block, _ve_br)).toRight (_v_Unstick__Blocks2.getExpr ()).yield ());
    888888              }
    889889              break _exit__iter1;
     
    920920            Unstick_Blocks (_ve_branch, _ve_new__branch, _ve_Fe);
    921921            _ve_branches = _ve_rest;
    922             _ve_br = Expr.concat (_ve_br, (Comparable) Expr.concat (_c_2, _ve_new__branch.getExpr ()));
    923             _ve_Fes = Expr.concat (_ve_Fes, (Comparable) _ve_Fe.getExpr ());
     922            _ve_br = Expr.concat (_ve_br, (Comparable<?>) Expr.concat (_c_2, _ve_new__branch.getExpr ()));
     923            _ve_Fes = Expr.concat (_ve_Fes, (Comparable<?>) _ve_Fe.getExpr ());
    924924          }
    925925          break _block1;
     
    982982          }
    983983          Result _v_Unstick__Blocks3 = new Result (Expr.empty);
    984           Unstick_Blocks (Expr.concat ((Comparable) Expr.concat (_vs_block, _ve_branches), _ve_R), _v_Unstick__Blocks3, _v_res2);
     984          Unstick_Blocks (Expr.concat ((Comparable<?>) Expr.concat (_vs_block, _ve_branches), _ve_R), _v_Unstick__Blocks3, _v_res2);
    985985          _v_res1.assign (Expr.concat (_ve_L, _v_Unstick__Blocks3.getExpr ()));
    986986          break _block1;
     
    10481048              Expr _ve_2 = Expr.empty;
    10491049              _ve_2 = _v_deref__Re.subexpr ((0 + 1), _v_len__2);
    1050               _ve_Result = Expr.concat ((Comparable) Expr.concat (_c_4, _ve_1), _ve_2);
     1050              _ve_Result = Expr.concat ((Comparable<?>) Expr.concat (_c_4, _ve_1), _ve_2);
    10511051              break _block7;
    10521052            }
    1053             _ve_Result = new Expr ((Comparable) Expr.concat (_c_4, _ve_Re));
     1053            _ve_Result = new Expr ((Comparable<?>) Expr.concat (_c_4, _ve_Re));
    10541054          }
    10551055          _block8: {
     
    10711071            Result _ve_Fe = new Result (Expr.empty);
    10721072            rfp_format.Format_Exp (_ve_Re, _ve_Fe);
    1073             rfp_format.MSG (Expr.concat ((Comparable) _ve_Fe.getExpr (), (Comparable) _ve_Fe.getExpr ()), _ve_Fe);
     1073            rfp_format.MSG (Expr.concat ((Comparable<?>) _ve_Fe.getExpr (), (Comparable<?>) _ve_Fe.getExpr ()), _ve_Fe);
    10741074            _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight (_ve_assigns.getExpr ()).toRight (_ve_Result).yield ());
    10751075            _v_res2.assign (_ve_Fe.getExpr ());
     
    11221122          Unstick_Blocks (_ve_body, _va_14, _v_Unstick__Blocks5);
    11231123          _ve_body = _va_14.getExpr ();
    1124           Expr _vt_empty = new Expr ((Comparable) _v_Unstick__Blocks5.getExpr ());
     1124          Expr _vt_empty = new Expr ((Comparable<?>) _v_Unstick__Blocks5.getExpr ());
    11251125          Result _v_Unstick__Blocks6 = new Result (Expr.empty);
    11261126          Unstick_Blocks (_ve_R, _v_Unstick__Blocks6, _v_res2);
    1127           _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable) Expr.concat (_c_15, (Comparable) Expr.concat (_c_2, _ve_body))).toRight (_v_Unstick__Blocks6.getExpr ()).yield ());
     1127          _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable<?>) Expr.concat (_c_15, (Comparable<?>) Expr.concat (_c_2, _ve_body))).toRight (_v_Unstick__Blocks6.getExpr ()).yield ());
    11281128          break _block1;
    11291129        }
     
    11751175          Unstick_Blocks (_ve_body, _va_15, _v_Unstick__Blocks7);
    11761176          _ve_body = _va_15.getExpr ();
    1177           Expr _vt__dollar_tmp_m_150_m_40 = new Expr ((Comparable) _v_Unstick__Blocks7.getExpr ());
     1177          Expr _vt__dollar_tmp_m_150_m_40 = new Expr ((Comparable<?>) _v_Unstick__Blocks7.getExpr ());
    11781178          Result _v_Unstick__Blocks8 = new Result (Expr.empty);
    11791179          Unstick_Blocks (_ve_R, _v_Unstick__Blocks8, _v_res2);
    1180           _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_16).toRight ((Comparable) Expr.concat (_c_2, _ve_body)).toRight (_vt_IterVars).yield ()).toRight (_v_Unstick__Blocks8.getExpr ()).yield ());
     1180          _v_res1.assign (Expr.getConcatenator ().toRight (_ve_L).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_16).toRight ((Comparable<?>) Expr.concat (_c_2, _ve_body)).toRight (_vt_IterVars).yield ()).toRight (_v_Unstick__Blocks8.getExpr ()).yield ());
    11811181          break _block1;
    11821182        }
     
    12051205          Expr _v_deref__deref__Snt6 = (Expr) _v_deref__Snt6.at ((0 + 1));
    12061206          Expr _v_deref__deref__Snt62 = (Expr) _v_deref__Snt6.at ((0 + 1 + 1));
    1207           int _v_len71 = _v_deref__deref__Snt62.length ();
     1207          int _v_len71 = _v_deref__deref__Snt6.length ();
    12081208          int _v_len72 = 1;
    12091209          if (_v_len71 < _v_len72)
     
    12111211            break _block1__branch6;
    12121212          }
    1213           int _v_len__CatchSnt = (_v_len71 - _v_len72);
    1214           int _v_len73 = _v_deref__deref__Snt6.length ();
     1213          int _v_len__TrySnt = (_v_len71 - _v_len72);
     1214          int _v_len73 = _v_deref__deref__Snt62.length ();
    12151215          int _v_len74 = 1;
    12161216          if (_v_len73 < _v_len74)
     
    12181218            break _block1__branch6;
    12191219          }
    1220           int _v_len__TrySnt = (_v_len73 - _v_len74);
     1220          int _v_len__CatchSnt = (_v_len73 - _v_len74);
    12211221          if (!_c_17.termEquals (_v_deref__Snt6, 0))
    12221222          {
     
    12391239          Unstick_Blocks (_ve_TrySnt, _va_16, _v_Unstick__Blocks9);
    12401240          _ve_TrySnt = _va_16.getExpr ();
    1241           Expr _vt_Try__Fe = new Expr ((Comparable) _v_Unstick__Blocks9.getExpr ());
     1241          Expr _vt_Try__Fe = new Expr ((Comparable<?>) _v_Unstick__Blocks9.getExpr ());
    12421242          Result _v_Unstick__Blocks10 = new Result (Expr.empty);
    12431243          Result _va_17 = new Result ();
    12441244          Unstick_Blocks (_ve_CatchSnt, _va_17, _v_Unstick__Blocks10);
    12451245          _ve_CatchSnt = _va_17.getExpr ();
    1246           Expr _vt_Catch__Fe = new Expr ((Comparable) _v_Unstick__Blocks10.getExpr ());
     1246          Expr _vt_Catch__Fe = new Expr ((Comparable<?>) _v_Unstick__Blocks10.getExpr ());
    12471247          Result _ge_auxcall3 = new Result (Expr.empty);
    12481248          rfp_format.MSG (Expr.concat (_vt_Try__Fe, _vt_Catch__Fe), _ge_auxcall3);
    1249           _v_res1.assign (Expr.concat (_ve_L, (Comparable) Expr.getConcatenator ().toRight (_c_17).toRight ((Comparable) Expr.concat (_c_2, _ve_TrySnt)).toRight ((Comparable) Expr.concat (_c_2, _ve_CatchSnt)).yield ()));
     1249          _v_res1.assign (Expr.concat (_ve_L, (Comparable<?>) Expr.getConcatenator ().toRight (_c_17).toRight ((Comparable<?>) Expr.concat (_c_2, _ve_TrySnt)).toRight ((Comparable<?>) Expr.concat (_c_2, _ve_CatchSnt)).yield ()));
    12501250          _v_res2.assign (_ge_auxcall3.getExpr ());
    12511251          break _block1;
     
    12911291          Unstick_Blocks (_ve_Err, _va_18, _v_Unstick__Blocks11);
    12921292          _ve_Err = _va_18.getExpr ();
    1293           Expr _vt__dollar_tmp_m_157_m_36 = new Expr ((Comparable) _v_Unstick__Blocks11.getExpr ());
    1294           _v_res1.assign (Expr.concat (_ve_L, (Comparable) Expr.concat (_c_18, (Comparable) Expr.concat (_c_2, _ve_Err))));
     1293          Expr _vt__dollar_tmp_m_157_m_36 = new Expr ((Comparable<?>) _v_Unstick__Blocks11.getExpr ());
     1294          _v_res1.assign (Expr.concat (_ve_L, (Comparable<?>) Expr.concat (_c_18, (Comparable<?>) Expr.concat (_c_2, _ve_Err))));
    12951295          _v_res2.assign (_c_19);
    12961296          break _block1;
     
    13911391            }
    13921392            _v_res1.assign (Expr.empty);
    1393             _v_res2.assign (Expr.concat (_ve_Re, (Comparable) Expr.concat (_c_14, _ve_1.getExpr ())));
     1393            _v_res2.assign (Expr.concat (_ve_Re, (Comparable<?>) Expr.concat (_c_14, _ve_1.getExpr ())));
    13941394            break _block3;
    13951395          }
     
    14141414          Result _v_Flatten__Result1 = new Result (Expr.empty);
    14151415          Flatten_Result (_vs_Istail, Expr.concat (_ve_Re, _ve_aux.getExpr ()), _ve_rest, _v_Flatten__Result1, _v_res2);
    1416           _v_res1.assign (Expr.getConcatenator ().toRight (_ve_1.getExpr ()).toRight ((Comparable) Expr.concat (_c_12, _ve_aux.getExpr ())).toRight (_v_Flatten__Result1.getExpr ()).yield ());
     1416          _v_res1.assign (Expr.getConcatenator ().toRight (_ve_1.getExpr ()).toRight ((Comparable<?>) Expr.concat (_c_12, _ve_aux.getExpr ())).toRight (_v_Flatten__Result1.getExpr ()).yield ());
    14171417        }
    14181418        break _block1;
     
    14521452        Flatten_Result (_c_22, Expr.empty, _ve_r, _ve_assigns, _va_20);
    14531453        _ve_r = _va_20.getExpr ();
    1454         Expr _vt_1 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_21).toRight (_vt_name).toRight (_ve_r).yield ());
     1454        Expr _vt_1 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_21).toRight (_vt_name).toRight (_ve_r).yield ());
    14551455        _block4: {
    14561456          _block4__branch1: {
     
    14891489          Result _v_Flatten__Result2 = new Result (Expr.empty);
    14901490          Flatten_Result (_vs_Istail, Expr.concat (_ve_Re, _ve_aux1.getExpr ()), _ve_rest, _v_Flatten__Result2, _v_res2);
    1491           _v_res1.assign (Expr.getConcatenator ().toRight (_ve_assigns.getExpr ()).toRight ((Comparable) Expr.concat (_c_4, _vt_1)).toRight ((Comparable) Expr.concat (_c_12, _ve_aux1.getExpr ())).toRight (_v_Flatten__Result2.getExpr ()).yield ());
     1491          _v_res1.assign (Expr.getConcatenator ().toRight (_ve_assigns.getExpr ()).toRight ((Comparable<?>) Expr.concat (_c_4, _vt_1)).toRight ((Comparable<?>) Expr.concat (_c_12, _ve_aux1.getExpr ())).toRight (_v_Flatten__Result2.getExpr ()).yield ());
    14921492        }
    14931493        break _block1;
     
    15261526        _ve_r = _va_22.getExpr ();
    15271527        Result _v_Flatten__Result3 = new Result (Expr.empty);
    1528         Flatten_Result (_vs_Istail, Expr.concat (_ve_Re, (Comparable) Expr.concat (_c_24, _ve_r)), _ve_rest, _v_Flatten__Result3, _v_res2);
     1528        Flatten_Result (_vs_Istail, Expr.concat (_ve_Re, (Comparable<?>) Expr.concat (_c_24, _ve_r)), _ve_rest, _v_Flatten__Result3, _v_res2);
    15291529        _v_res1.assign (Expr.concat (_ve_assigns.getExpr (), _v_Flatten__Result3.getExpr ()));
    15301530        break _block1;
     
    18341834              rfp_helper.Del_Pragmas (_ve_in__expr.getExpr (), _ge_in__expr__7);
    18351835              _ge_in__1 = _ge_in__expr__7.getExpr ();
    1836               _ge_Sentence__1 = Expr.concat ((Comparable) Expr.concat (_c_4, _ge_in__expr__7.getExpr ()), _ve_Sentence);
     1836              _ge_Sentence__1 = Expr.concat ((Comparable<?>) Expr.concat (_c_4, _ge_in__expr__7.getExpr ()), _ve_Sentence);
    18371837              break _block5;
    18381838            }
    18391839            _ge_in__1 = _ve_in__expr.getExpr ();
    1840             _ge_Sentence__1 = Expr.concat ((Comparable) Expr.concat (_c_28, _ve_in__expr.getExpr ()), _ve_Sentence);
     1840            _ge_Sentence__1 = Expr.concat ((Comparable<?>) Expr.concat (_c_28, _ve_in__expr.getExpr ()), _ve_Sentence);
    18411841          }
    18421842        }
     
    19181918            }
    19191919            _ge_in__1 = _ve_in__expr.getExpr ();
    1920             _ge_Sentence__1 = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_vs_block).toRight ((Comparable) Expr.concat (_c_1, _ve_Pragma)).toRight (_ve_br).yield (), _ve_Snt);
     1920            _ge_Sentence__1 = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_block).toRight ((Comparable<?>) Expr.concat (_c_1, _ve_Pragma)).toRight (_ve_br).yield (), _ve_Snt);
    19211921            break _exit__iter1;
    19221922          }
     
    20642064              Result _ge_auxcall3 = new Result (Expr.empty);
    20652065              rfp_helper.Subst (_ve_pats.getExpr (), _ve_repls.getExpr (), _ve_br__snt, _ge_auxcall3);
    2066               _ve_br = Expr.concat (_ve_br, (Comparable) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_p).toRight (_ge_auxcall3.getExpr ()).yield ());
     2066              _ve_br = Expr.concat (_ve_br, (Comparable<?>) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_p).toRight (_ge_auxcall3.getExpr ()).yield ());
    20672067              _ve_branches = _ve_rest;
    20682068              break _block8;
    20692069            }
    2070             _ve_br = Expr.concat (_ve_br, (Comparable) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_p).toRight ((Comparable) Expr.getConcatenator ().toRight (_vs_dir).toRight (_vt_pp).toRight (_ve_Pe).yield ()).toRight (_ve_br__snt).yield ());
     2070            _ve_br = Expr.concat (_ve_br, (Comparable<?>) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_p).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_dir).toRight (_vt_pp).toRight (_ve_Pe).yield ()).toRight (_ve_br__snt).yield ());
    20712071            _ve_branches = _ve_rest;
    20722072          }
     
    21322132            }
    21332133            _ge_in__1 = _ve_in__expr.getExpr ();
    2134             _ge_Sentence__1 = Expr.concat ((Comparable) Expr.concat (_vs_block, _ve_br), _ve_Snt);
     2134            _ge_Sentence__1 = Expr.concat ((Comparable<?>) Expr.concat (_vs_block, _ve_br), _ve_Snt);
    21352135            break _exit__iter2;
    21362136          }
     
    22742274              Result _ge_auxcall5 = new Result (Expr.empty);
    22752275              rfp_helper.Subst (_ve_pats.getExpr (), _ve_repls.getExpr (), _ve_br__snt, _ge_auxcall5);
    2276               _ve_br = Expr.concat (_ve_br, (Comparable) Expr.concat (_c_2, _ge_auxcall5.getExpr ()));
     2276              _ve_br = Expr.concat (_ve_br, (Comparable<?>) Expr.concat (_c_2, _ge_auxcall5.getExpr ()));
    22772277              _ve_branches = _ve_rest;
    22782278              break _block12;
    22792279            }
    2280             _ve_br = Expr.concat (_ve_br, (Comparable) Expr.getConcatenator ().toRight (_c_2).toRight ((Comparable) Expr.concat (_vs_dir, _ve_Pe)).toRight (_ve_br__snt).yield ());
     2280            _ve_br = Expr.concat (_ve_br, (Comparable<?>) Expr.getConcatenator ().toRight (_c_2).toRight ((Comparable<?>) Expr.concat (_vs_dir, _ve_Pe)).toRight (_ve_br__snt).yield ());
    22812281            _ve_branches = _ve_rest;
    22822282          }
     
    24132413          refal.plus.List.Or (_ve_vars, _ge_auxcall2.getExpr (), _ge_auxcall3);
    24142414          _ve_vars = _ge_auxcall3.getExpr ();
    2415           _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.concat (_vs_tag, _ve_Pe1));
     2415          _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.concat (_vs_tag, _ve_Pe1));
    24162416          _ge_Snt__0 = _ve_rest__Snt;
    24172417          break _block2;
     
    24832483          refal.plus.List.Or (_ve_vars, _ge_auxcall5.getExpr (), _ge_auxcall6);
    24842484          _ve_vars = _ge_auxcall6.getExpr ();
    2485           _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.concat (_c_12, _ve_He1));
     2485          _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.concat (_c_12, _ve_He1));
    24862486          _ge_Snt__0 = _ve_rest__Snt;
    24872487          break _block2;
     
    26522652              refal.plus.Arithm.Add (_vs_num, _c_31, _gs_auxcall7);
    26532653              Result _ge_branches__5 = new Result (Expr.empty);
    2654               if (!refal.plus.List.Map (_c_32, Expr.getConcatenator ().toRight (_gs_auxcall7.getExpr ()).toRight ((Comparable) _ve_vars).toRight ((Comparable) _ve_brv).yield (), _ve_branches, _ge_branches__5))
     2654              if (!refal.plus.List.Map (_c_32, Expr.getConcatenator ().toRight (_gs_auxcall7.getExpr ()).toRight ((Comparable<?>) _ve_vars).toRight ((Comparable<?>) _ve_brv).yield (), _ve_branches, _ge_branches__5))
    26552655              {
    26562656                throw new RefalException ("org.refal.plus.compiler.rfp_as2as", "Rename_Vars", "Unexpected fail");
     
    26902690                  Rename_Vars (_gs_auxcall8.getExpr (), _ve_vars, _ve_res__vars, _ve_rest, _ge_auxcall9);
    26912691                  _ve_vars = Expr.empty;
    2692                   _ve_new__Snt = Expr.getConcatenator ().toRight (_ve_new__Snt).toRight ((Comparable) Expr.concat (_vs_block, _ge_branches__5.getExpr ())).toRight (_ge_auxcall9.getExpr ()).yield ();
     2692                  _ve_new__Snt = Expr.getConcatenator ().toRight (_ve_new__Snt).toRight ((Comparable<?>) Expr.concat (_vs_block, _ge_branches__5.getExpr ())).toRight (_ge_auxcall9.getExpr ()).yield ();
    26932693                  _ge_Snt__0 = Expr.empty;
    26942694                  break _block6;
    26952695                }
    2696                 _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.concat (_vs_block, _ge_branches__5.getExpr ()));
     2696                _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.concat (_vs_block, _ge_branches__5.getExpr ()));
    26972697                _ge_Snt__0 = _ve_rest;
    26982698              }
     
    27012701            _block7: {
    27022702              _block7__branch1: {
     2703                if (_ve_bl__res__vars.length () < 1)
     2704                {
     2705                  break _block7__branch1;
     2706                }
     2707                if (_ve_bl__res__vars.length () > ((_ve_bl__res__vars.length () - 1) + (_ve_bl__res__vars.length () - 1) + 1))
     2708                {
     2709                  break _block7__branch1;
     2710                }
    27032711                if (_ve_vars.length () < 1)
    27042712                {
     
    27062714                }
    27072715                if (_ve_vars.length () > ((_ve_vars.length () - 1) + (_ve_vars.length () - 1) + 1))
    2708                 {
    2709                   break _block7__branch1;
    2710                 }
    2711                 if (_ve_bl__res__vars.length () < 1)
    2712                 {
    2713                   break _block7__branch1;
    2714                 }
    2715                 if (_ve_bl__res__vars.length () > ((_ve_bl__res__vars.length () - 1) + (_ve_bl__res__vars.length () - 1) + 1))
    27162716                {
    27172717                  break _block7__branch1;
     
    28232823          Rename_Vars (_vs_num, _ve_vars, _ve_res__vars, _ve_Sentence, _ge_auxcall10);
    28242824          _ve_vars = Expr.empty;
    2825           _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.concat (_c_2, _ge_auxcall10.getExpr ()));
     2825          _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.concat (_c_2, _ge_auxcall10.getExpr ()));
    28262826          _ge_Snt__0 = Expr.empty;
    28272827          break _block2;
     
    28722872          _ve_new__rest = _v_Rename__Vars2.getExpr ().subexpr ((0 + 1), _v_len__new__rest);
    28732873          _ve_vars = Expr.empty;
    2874           _ve_new__Snt = Expr.getConcatenator ().toRight (_ve_new__Snt).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_16).toRight (_ve_new__body).toRight (_vt_new__vars).yield ()).toRight (_ve_new__rest).yield ();
     2874          _ve_new__Snt = Expr.getConcatenator ().toRight (_ve_new__Snt).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_16).toRight (_ve_new__body).toRight (_vt_new__vars).yield ()).toRight (_ve_new__rest).yield ();
    28752875          _ge_Snt__0 = Expr.empty;
    28762876          break _block2;
     
    28992899          Rename_Vars (_vs_num, _ve_upper__vars, _ve_res__vars, _vt_CatchBranch, _ve_CatchBranch);
    29002900          _ve_vars = Expr.empty;
    2901           _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.getConcatenator ().toRight (_c_17).toRight (_ve_TryBranch.getExpr ()).toRight (_ve_CatchBranch.getExpr ()).yield ());
     2901          _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.getConcatenator ().toRight (_c_17).toRight (_ve_TryBranch.getExpr ()).toRight (_ve_CatchBranch.getExpr ()).yield ());
    29022902          _ge_Snt__0 = Expr.empty;
    29032903          break _block2;
     
    29212921          Result _ge_auxcall11 = new Result (Expr.empty);
    29222922          Rename_Vars (_vs_num, _ve_vars, _ve_res__vars, _vt_branch, _ge_auxcall11);
    2923           _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable) Expr.concat (_c_15, _ge_auxcall11.getExpr ()));
     2923          _ve_new__Snt = Expr.concat (_ve_new__Snt, (Comparable<?>) Expr.concat (_c_15, _ge_auxcall11.getExpr ()));
    29242924          _ge_Snt__0 = _ve_rest;
    29252925          break _block2;
     
    30253025        }
    30263026        int _v_len__Snt = (_v_len1 - _v_len2);
    3027         Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight ((Comparable) _ge_arg2).toRight (_ge_arg3).yield ();
     3027        Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight ((Comparable<?>) _ge_arg2).toRight (_ge_arg3).yield ();
    30283028        if (_v_compose1.isSymbolAt (0))
    30293029        {
     
    30363036        Expr _v_deref__compose1 = (Expr) _v_compose1.at (0);
    30373037        Expr _v_deref__compose12 = (Expr) _v_compose1.at ((0 + 1));
    3038         int _v_len3 = _v_deref__compose12.length ();
     3038        int _v_len3 = _v_deref__compose1.length ();
    30393039        int _v_len4 = 1;
    30403040        if (_v_len3 < _v_len4)
     
    30423042          break _block1__branch1;
    30433043        }
    3044         int _v_len__substs = (_v_len3 - _v_len4);
    3045         int _v_len5 = _v_deref__compose1.length ();
     3044        int _v_len__vars = (_v_len3 - _v_len4);
     3045        int _v_len5 = _v_deref__compose12.length ();
    30463046        int _v_len6 = 1;
    30473047        if (_v_len5 < _v_len6)
     
    30493049          break _block1__branch1;
    30503050        }
    3051         int _v_len__vars = (_v_len5 - _v_len6);
     3051        int _v_len__substs = (_v_len5 - _v_len6);
    30523052        if (_v_deref__compose1.isSymbolAt (0))
    30533053        {
     
    30603060        Expr _v_deref__deref__compose1 = (Expr) _v_deref__compose1.at (0);
    30613061        Expr _v_deref__deref__compose12 = (Expr) _v_deref__compose12.at (0);
    3062         int _v_len7 = _v_deref__deref__compose12.length ();
     3062        int _v_len7 = _v_deref__deref__compose1.length ();
    30633063        int _v_len8 = 2;
    30643064        if (_v_len7 < _v_len8)
     
    30663066          break _block1__branch1;
    30673067        }
    3068         int _v_len___dollar_tmp_m_391_m_34 = (_v_len7 - _v_len8);
    3069         int _v_len9 = _v_deref__deref__compose1.length ();
     3068        int _v_len___dollar_tmp_m_391_m_12 = (_v_len7 - _v_len8);
     3069        int _v_len9 = _v_deref__deref__compose12.length ();
    30703070        int _v_len10 = 2;
    30713071        if (_v_len9 < _v_len10)
     
    30733073          break _block1__branch1;
    30743074        }
    3075         int _v_len___dollar_tmp_m_391_m_12 = (_v_len9 - _v_len10);
     3075        int _v_len___dollar_tmp_m_391_m_34 = (_v_len9 - _v_len10);
    30763076        if (!_v_deref__deref__compose1.isSymbolAt (0))
    30773077        {
     
    31173117      }
    31183118      int _v_len___dollar_tmp_m_395_m_10 = (_v_len11 - _v_len12);
    3119       Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight ((Comparable) _ge_arg2).toRight (_ge_arg3).yield ();
     3119      Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight ((Comparable<?>) _ge_arg2).toRight (_ge_arg3).yield ();
    31203120      if (!_c_33.equals (_v_compose2, 0))
    31213121      {
     
    31993199                }
    32003200                _ve_st__pats = _vt_Statement;
    3201                 _ve_st__repls = new Expr ((Comparable) new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_tag).toRight (_ve_p).toRight (_vt_s).yield ()));
     3201                _ve_st__repls = new Expr ((Comparable<?>) new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_tag).toRight (_ve_p).toRight (_vt_s).yield ()));
    32023202                break _block4;
    32033203              }
     
    32423242      _v_res2.assign (Expr.empty);
    32433243    }
    3244   }
    3245 
    3246   static  boolean Rename_Vars_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    3247   {
    3248     int _v_len1 = _ge_arg1.length ();
    3249     int _v_len2 = 3;
    3250     if (_v_len1 < _v_len2)
    3251     {
    3252       throw new RefalException (_c_34);
    3253     }
    3254     int _v_len__stub1 = (_v_len1 - _v_len2);
    3255     if (_ge_arg1.isSymbolAt ((0 + 1)))
    3256     {
    3257       throw new RefalException (_c_34);
    3258     }
    3259     if (_ge_arg1.isSymbolAt ((0 + 1 + 1)))
    3260     {
    3261       throw new RefalException (_c_34);
    3262     }
    3263     Expr _v_deref__arg1 = (Expr) _ge_arg1.at ((0 + 1));
    3264     Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1 + 1));
    3265     int _v_len3 = _v_deref__arg12.length ();
    3266     int _v_len4 = 0;
    3267     if (_v_len3 < _v_len4)
    3268     {
    3269       throw new RefalException (_c_34);
    3270     }
    3271     int _v_len__stub2 = (_v_len3 - _v_len4);
    3272     int _v_len5 = _v_deref__arg1.length ();
    3273     int _v_len6 = 0;
    3274     if (_v_len5 < _v_len6)
    3275     {
    3276       throw new RefalException (_c_34);
    3277     }
    3278     int _v_len__stub3 = (_v_len5 - _v_len6);
    3279     if (!_ge_arg1.isSymbolAt (0))
    3280     {
    3281       throw new RefalException (_c_34);
    3282     }
    3283     Expr _v_stub4 = Expr.empty;
    3284     _v_stub4 = _ge_arg1.subexpr (0, 1);
    3285     Expr _v_stub1 = Expr.empty;
    3286     _v_stub1 = _ge_arg1.subexpr ((0 + 1 + 1 + 1), _v_len__stub1);
    3287     Expr _v_stub3 = Expr.empty;
    3288     _v_stub3 = _v_deref__arg1.subexpr (0, _v_len__stub3);
    3289     Expr _v_stub2 = Expr.empty;
    3290     _v_stub2 = _v_deref__arg12.subexpr (0, _v_len__stub2);
    3291     Rename_Vars (_v_stub4, _v_stub3, _v_stub2, _v_stub1, _v_res1);
    3292     return true;
    32933244  }
    32943245
     
    33383289    Result _v_Rename3 = new Result (Expr.empty);
    33393290    Rename (_v_stub2, _v_stub3, _v_stub1, _v_Rename1, _v_Rename2, _v_Rename3);
    3340     _v_res1.assign (new Expr ((Comparable) Expr.concat (_v_Rename1.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_v_Rename2.getExpr ()).toRight (_c_35).toRight (_v_Rename3.getExpr ()).yield ())));
     3291    _v_res1.assign (new Expr ((Comparable<?>) Expr.concat (_v_Rename1.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_v_Rename2.getExpr ()).toRight (_c_35).toRight (_v_Rename3.getExpr ()).yield ())));
     3292    return true;
     3293  }
     3294
     3295  static  boolean Rename_Vars_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
     3296  {
     3297    int _v_len1 = _ge_arg1.length ();
     3298    int _v_len2 = 3;
     3299    if (_v_len1 < _v_len2)
     3300    {
     3301      throw new RefalException (_c_34);
     3302    }
     3303    int _v_len__stub1 = (_v_len1 - _v_len2);
     3304    if (_ge_arg1.isSymbolAt ((0 + 1)))
     3305    {
     3306      throw new RefalException (_c_34);
     3307    }
     3308    if (_ge_arg1.isSymbolAt ((0 + 1 + 1)))
     3309    {
     3310      throw new RefalException (_c_34);
     3311    }
     3312    Expr _v_deref__arg1 = (Expr) _ge_arg1.at ((0 + 1));
     3313    Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1 + 1));
     3314    int _v_len3 = _v_deref__arg1.length ();
     3315    int _v_len4 = 0;
     3316    if (_v_len3 < _v_len4)
     3317    {
     3318      throw new RefalException (_c_34);
     3319    }
     3320    int _v_len__stub2 = (_v_len3 - _v_len4);
     3321    int _v_len5 = _v_deref__arg12.length ();
     3322    int _v_len6 = 0;
     3323    if (_v_len5 < _v_len6)
     3324    {
     3325      throw new RefalException (_c_34);
     3326    }
     3327    int _v_len__stub3 = (_v_len5 - _v_len6);
     3328    if (!_ge_arg1.isSymbolAt (0))
     3329    {
     3330      throw new RefalException (_c_34);
     3331    }
     3332    Expr _v_stub4 = Expr.empty;
     3333    _v_stub4 = _ge_arg1.subexpr (0, 1);
     3334    Expr _v_stub1 = Expr.empty;
     3335    _v_stub1 = _ge_arg1.subexpr ((0 + 1 + 1 + 1), _v_len__stub1);
     3336    Expr _v_stub2 = Expr.empty;
     3337    _v_stub2 = _v_deref__arg1.subexpr (0, _v_len__stub2);
     3338    Expr _v_stub3 = Expr.empty;
     3339    _v_stub3 = _v_deref__arg12.subexpr (0, _v_len__stub3);
     3340    Rename_Vars (_v_stub4, _v_stub2, _v_stub3, _v_stub1, _v_res1);
    33413341    return true;
    33423342  }
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/rfp_asail.java

    • Property svn:keywords set to Author Date Id Revision
    r3370 r3428  
    8383      Expr _vt_3 = Expr.empty;
    8484      _vt_3 = _ve_args.subexpr ((0 + _v_len__1 + 1), 1);
    85       Op (_ve_op, Expr.concat (_ve_1, (Comparable) Expr.getConcatenator ().toRight (_ve_op).toRight ((Comparable) _vt_2).toRight ((Comparable) _vt_3).yield ()), _v_res1);
     85      Op (_ve_op, Expr.concat (_ve_1, (Comparable<?>) Expr.getConcatenator ().toRight (_ve_op).toRight ((Comparable<?>) _vt_2).toRight ((Comparable<?>) _vt_3).yield ()), _v_res1);
    8686    }
    8787  }
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/rfp_asail2asail.java

    r3370 r3428  
    2424  static  final Expr _c_9 = new Expr (Symbol.newWord ("LABEL"));
    2525  static  final Expr _c_10 = new Expr (Symbol.newWord ("TRY"));
    26   static  final Expr _c_11 = new Expr ((Comparable) _c_10);
     26  static  final Expr _c_11 = new Expr ((Comparable<?>) _c_10);
    2727  static  final Expr _c_12 = new Expr (Symbol.newWord ("CATCH-ERROR"));
    28   static  final Expr _c_13 = new Expr ((Comparable) _c_12);
    29   static  final Expr _c_14 = new Expr ((Comparable) Expr.empty);
     28  static  final Expr _c_13 = new Expr ((Comparable<?>) _c_12);
     29  static  final Expr _c_14 = new Expr ((Comparable<?>) Expr.empty);
    3030  static  final Expr _c_15 = new Expr (Symbol.newWord ("Normal-Exit"));
    3131  static  final Expr _c_16 = new Expr (Symbol.newWord ("Persistent"));
     
    149149    Result _ge_auxcall3 = new Result (Expr.empty);
    150150    Remove_Dupl_Decl (Expr.empty, Expr.empty, _ge_auxcall2.getExpr (), _ge_auxcall3);
    151     _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_0).toRight (_vt_ModuleName).toRight (_ge_auxcall3.getExpr ()).yield ()));
     151    _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_0).toRight (_vt_ModuleName).toRight (_ge_auxcall3.getExpr ()).yield ()));
    152152  }
    153153
     
    193193            Expr _v_deref__deref__first = (Expr) _v_deref__first.at ((0 + 1 + 1));
    194194            Expr _v_deref__deref__first2 = (Expr) _v_deref__first.at ((0 + 1 + 1 + 1));
    195             int _v_len5 = _v_deref__deref__first2.length ();
     195            int _v_len5 = _v_deref__deref__first.length ();
    196196            int _v_len6 = 0;
    197197            if (_v_len5 < _v_len6)
     
    199199              break _block2__branch1;
    200200            }
    201             int _v_len__arg2 = (_v_len5 - _v_len6);
    202             int _v_len7 = _v_deref__deref__first.length ();
     201            int _v_len__arg1 = (_v_len5 - _v_len6);
     202            int _v_len7 = _v_deref__deref__first2.length ();
    203203            int _v_len8 = 0;
    204204            if (_v_len7 < _v_len8)
     
    206206              break _block2__branch1;
    207207            }
    208             int _v_len__arg1 = (_v_len7 - _v_len8);
     208            int _v_len__arg2 = (_v_len7 - _v_len8);
    209209            if (!_c_1.termEquals (_v_deref__first, 0))
    210210            {
     
    226226              _block3__branch1: {
    227227                Result _ge_auxcall1 = new Result (Expr.empty);
    228                 Simplify_Arithm (new Expr ((Comparable) _ve_arg1), _ge_auxcall1);
     228                Simplify_Arithm (new Expr ((Comparable<?>) _ve_arg1), _ge_auxcall1);
    229229                Result _ge_auxcall2 = new Result (Expr.empty);
    230                 Simplify_Arithm (new Expr ((Comparable) _ve_arg2), _ge_auxcall2);
     230                Simplify_Arithm (new Expr ((Comparable<?>) _ve_arg2), _ge_auxcall2);
    231231                Result _v_Simplify__Cmp1 = new Result (Expr.empty);
    232232                if (!Simplify_Cmp (_vs_op, _ge_auxcall1.getExpr (), _ge_auxcall2.getExpr (), _v_Simplify__Cmp1))
     
    250250                    Expr _v_deref__Simplify__Cmp1 = (Expr) _v_Simplify__Cmp1.getExpr ().at (0);
    251251                    Expr _v_deref__Simplify__Cmp12 = (Expr) _v_Simplify__Cmp1.getExpr ().at ((0 + 1));
    252                     int _v_len9 = _v_deref__Simplify__Cmp12.length ();
     252                    int _v_len9 = _v_deref__Simplify__Cmp1.length ();
    253253                    int _v_len10 = 0;
    254254                    if (_v_len9 < _v_len10)
     
    256256                      break _block4__branch1;
    257257                    }
    258                     int _v_len__2 = (_v_len9 - _v_len10);
    259                     int _v_len11 = _v_deref__Simplify__Cmp1.length ();
     258                    int _v_len__1 = (_v_len9 - _v_len10);
     259                    int _v_len11 = _v_deref__Simplify__Cmp12.length ();
    260260                    int _v_len12 = 0;
    261261                    if (_v_len11 < _v_len12)
     
    263263                      break _block4__branch1;
    264264                    }
    265                     int _v_len__1 = (_v_len11 - _v_len12);
     265                    int _v_len__2 = (_v_len11 - _v_len12);
    266266                    Expr _ve_1 = Expr.empty;
    267267                    _ve_1 = _v_deref__Simplify__Cmp1.subexpr (0, _v_len__1);
     
    270270                    Result _ge_auxcall3 = new Result (Expr.empty);
    271271                    Simplify (_ve_body, _ge_auxcall3);
    272                     _ge_first__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_1).toRight (_vs_op).toRight ((Comparable) _ve_1).toRight ((Comparable) _ve_2).toRight (_ge_auxcall3.getExpr ()).yield ());
     272                    _ge_first__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_1).toRight (_vs_op).toRight ((Comparable<?>) _ve_1).toRight ((Comparable<?>) _ve_2).toRight (_ge_auxcall3.getExpr ()).yield ());
    273273                    break _block4;
    274274                  }
     
    310310            Result _ge_auxcall4 = new Result (Expr.empty);
    311311            Simplify (_ve_body, _ge_auxcall4);
    312             _ge_first__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_cond).toRight (_ge_auxcall4.getExpr ()).yield ());
     312            _ge_first__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_2).toRight (_vt_cond).toRight (_ge_auxcall4.getExpr ()).yield ());
    313313            break _block2;
    314314          }
     
    348348            _vt_var = _v_deref__deref__first3.subexpr ((0 + 1), 1);
    349349            Result _ge_auxcall5 = new Result (Expr.empty);
    350             Simplify_Arithm (new Expr ((Comparable) _ve_expr), _ge_auxcall5);
    351             _ge_first__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_4).toRight ((Comparable) Expr.concat (_c_3, _vt_var)).toRight (_ge_auxcall5.getExpr ()).yield ());
     350            Simplify_Arithm (new Expr ((Comparable<?>) _ve_expr), _ge_auxcall5);
     351            _ge_first__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_4).toRight ((Comparable<?>) Expr.concat (_c_3, _vt_var)).toRight (_ge_auxcall5.getExpr ()).yield ());
    352352            break _block2;
    353353          }
     
    387387            _vt_var = _v_deref__deref__first4.subexpr ((0 + 1), 1);
    388388            Result _ge_auxcall6 = new Result (Expr.empty);
    389             Simplify_Arithm (new Expr ((Comparable) _ve_expr), _ge_auxcall6);
    390             _ge_first__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_5).toRight ((Comparable) Expr.concat (_c_3, _vt_var)).toRight (_ge_auxcall6.getExpr ()).yield ());
     389            Simplify_Arithm (new Expr ((Comparable<?>) _ve_expr), _ge_auxcall6);
     390            _ge_first__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_5).toRight ((Comparable<?>) Expr.concat (_c_3, _vt_var)).toRight (_ge_auxcall6.getExpr ()).yield ());
    391391            break _block2;
    392392          }
     
    408408            Result _ge_auxcall7 = new Result (Expr.empty);
    409409            Simplify (_ve_1, _ge_auxcall7);
    410             _ge_first__3 = new Expr ((Comparable) _ge_auxcall7.getExpr ());
     410            _ge_first__3 = new Expr ((Comparable<?>) _ge_auxcall7.getExpr ());
    411411            break _block2;
    412412          }
     
    519519            Expr _ge_body__4 = Expr.empty;
    520520            _ge_body__4 = _v_deref__1.subexpr ((0 + 1 + 1 + 1 + 1), _v_len__body__4);
    521             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_6).toRight (_vt_name).toRight (_vt_in).toRight (_vt_out).yield ()));
     521            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_6).toRight (_vt_name).toRight (_vt_in).toRight (_vt_out).yield ()));
    522522            refal.plus.Table.ClearTable (Breaks);
    523523            _ve_body = _ge_body__4;
     
    549549            Expr _ge_body__4 = Expr.empty;
    550550            _ge_body__4 = _v_deref__12.subexpr ((0 + 1 + 1 + 1 + 1), _v_len__body__42);
    551             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_7).toRight (_vt_name).toRight (_vt_in).toRight (_vt_out).yield ()));
     551            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_7).toRight (_vt_name).toRight (_vt_in).toRight (_vt_out).yield ()));
    552552            refal.plus.Table.ClearTable (Breaks);
    553553            _ve_body = _ge_body__4;
     
    601601            }
    602602            int _v_len__break = (_v_len11 - _v_len12);
    603             int _v_len13 = _v_deref__deref__134.length ();
     603            int _v_len13 = _v_deref__deref__133.length ();
    604604            int _v_len14 = 0;
    605605            if (_v_len13 < _v_len14)
     
    607607              break _block2__branch3;
    608608            }
    609             int _v_len__step = (_v_len13 - _v_len14);
    610             int _v_len15 = _v_deref__deref__133.length ();
     609            int _v_len__cond = (_v_len13 - _v_len14);
     610            int _v_len15 = _v_deref__deref__134.length ();
    611611            int _v_len16 = 0;
    612612            if (_v_len15 < _v_len16)
     
    614614              break _block2__branch3;
    615615            }
    616             int _v_len__cond = (_v_len15 - _v_len16);
     616            int _v_len__step = (_v_len15 - _v_len16);
    617617            if (!_c_8.termEquals (_v_deref__13, 0))
    618618            {
     
    629629            Expr _ve_step = Expr.empty;
    630630            _ve_step = _v_deref__deref__134.subexpr (0, _v_len__step);
    631             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable) _ve_cont).toRight ((Comparable) _ve_break).toRight ((Comparable) _ve_cond).toRight ((Comparable) _ve_step).yield ()));
     631            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable<?>) _ve_cont).toRight ((Comparable<?>) _ve_break).toRight ((Comparable<?>) _ve_cond).toRight ((Comparable<?>) _ve_step).yield ()));
    632632            _ve_body = _ge_body__4;
    633633            break _block2;
     
    663663            Expr _vt_label = Expr.empty;
    664664            _vt_label = _v_deref__deref__14.subexpr (0, 1);
    665             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.concat (_c_9, (Comparable) _vt_label)));
     665            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.concat (_c_9, (Comparable<?>) _vt_label)));
    666666            _ve_body = _ge_body__4;
    667667            break _block2;
     
    688688            Expr _ge_body__4 = Expr.empty;
    689689            _ge_body__4 = _v_deref__15.subexpr ((0 + 1 + 1), _v_len__body__45);
    690             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.concat (_c_2, _vt_cond)));
     690            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.concat (_c_2, _vt_cond)));
    691691            _ve_body = _ge_body__4;
    692692            break _block2;
     
    721721            Expr _ge_body__4 = Expr.empty;
    722722            _ge_body__4 = _v_deref__16.subexpr ((0 + 1 + 1 + 1 + 1), _v_len__body__46);
    723             refal.plus.Box.Put (Blocks, new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_1).toRight (_vs_op).toRight (_vt_arg1).toRight (_vt_arg2).yield ()));
     723            refal.plus.Box.Put (Blocks, new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_1).toRight (_vs_op).toRight (_vt_arg1).toRight (_vt_arg2).yield ()));
    724724            _ve_body = _ge_body__4;
    725725            break _block2;
     
    812812                  break _block4__branch1;
    813813                }
    814                 _ve_t1 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_9).toRight ((Comparable) _vt_label).toRight (_ve_body).yield ());
     814                _ve_t1 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_9).toRight ((Comparable<?>) _vt_label).toRight (_ve_body).yield ());
    815815                _ge_2__4 = _ve_2;
    816816                break _block4;
     
    903903            }
    904904            int _v_len__cont2 = (_v_len29 - _v_len30);
    905             int _v_len31 = _v_deref__deref__GetR123.length ();
     905            int _v_len31 = _v_deref__deref__GetR122.length ();
    906906            int _v_len32 = 0;
    907907            if (_v_len31 < _v_len32)
     
    909909              break _block3__branch2;
    910910            }
    911             int _v_len__step2 = (_v_len31 - _v_len32);
    912             int _v_len33 = _v_deref__deref__GetR122.length ();
     911            int _v_len__break2 = (_v_len31 - _v_len32);
     912            int _v_len33 = _v_deref__deref__GetR123.length ();
    913913            int _v_len34 = 0;
    914914            if (_v_len33 < _v_len34)
     
    916916              break _block3__branch2;
    917917            }
    918             int _v_len__break2 = (_v_len33 - _v_len34);
     918            int _v_len__step2 = (_v_len33 - _v_len34);
    919919            if (!_c_8.termEquals (_v_deref__GetR12, 0))
    920920            {
     
    937937                  break _block6__branch1;
    938938                }
    939                 _ve_t1 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable) _ve_cont).toRight ((Comparable) _ve_break).toRight (_c_14).toRight ((Comparable) _ve_step).toRight (_ve_body).yield ());
     939                _ve_t1 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable<?>) _ve_cont).toRight ((Comparable<?>) _ve_break).toRight (_c_14).toRight ((Comparable<?>) _ve_step).toRight (_ve_body).yield ());
    940940                _ge_2__4 = _ve_2;
    941941                break _block6;
    942942              }
    943               _ve_t1 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable) _ve_cont).toRight ((Comparable) _ve_break).toRight (_c_14).toRight ((Comparable) _ve_step).toRight (_ve_body).yield ());
     943              _ve_t1 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_8).toRight ((Comparable<?>) _ve_cont).toRight ((Comparable<?>) _ve_break).toRight (_c_14).toRight ((Comparable<?>) _ve_step).toRight (_ve_body).yield ());
    944944              _ge_2__4 = Expr.empty;
    945945            }
     
    982982                Expr _ve__dollar_tmp_m_103_m_34 = Expr.empty;
    983983                _ve__dollar_tmp_m_103_m_34 = _v_deref__Get2.subexpr (0, _v_len___dollar_tmp_m_103_m_34);
    984                 _ve_t1 = new Expr ((Comparable) Expr.concat (_c_10, _ve_body));
     984                _ve_t1 = new Expr ((Comparable<?>) Expr.concat (_c_10, _ve_body));
    985985                _ge_2__4 = _ve_2;
    986986                break _block7;
     
    10131013              Expr _ve_catch__body = Expr.empty;
    10141014              _ve_catch__body = _v_deref__2.subexpr ((0 + 1), _v_len__catch__body);
    1015               _ve_t1 = new Expr ((Comparable) Expr.concat (_c_10, _ve_body));
    1016               _ge_2__4 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_12).toRight (_ve_catch__body).toRight (_ve_3).yield ());
     1015              _ve_t1 = new Expr ((Comparable<?>) Expr.concat (_c_10, _ve_body));
     1016              _ge_2__4 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_12).toRight (_ve_catch__body).toRight (_ve_3).yield ());
    10171017            }
    10181018            break _block3;
     
    10321032          Expr _ve_item = Expr.empty;
    10331033          _ve_item = _v_deref__GetR13.subexpr (0, _v_len__item);
    1034           _ve_t1 = new Expr ((Comparable) Expr.concat (_ve_item, _ve_body));
     1034          _ve_t1 = new Expr ((Comparable<?>) Expr.concat (_ve_item, _ve_body));
    10351035          _ge_2__4 = _ve_2;
    10361036        }
     
    11351135            Expr _ve_breaks = Expr.empty;
    11361136            _ve_breaks = _v_deref__GetR2.subexpr (0, _v_len__breaks);
    1137             refal.plus.Box.Put (Last_Breaks, new Expr ((Comparable) Expr.concat (_ve_breaks, _vt_label)));
     1137            refal.plus.Box.Put (Last_Breaks, new Expr ((Comparable<?>) Expr.concat (_ve_breaks, _vt_label)));
    11381138            _block10: {
    11391139              _block10__branch1: {
     
    12681268                }
    12691269                int _v_len__break3 = (_v_len59 - _v_len60);
    1270                 int _v_len61 = _v_deref__deref__Get44.length ();
     1270                int _v_len61 = _v_deref__deref__Get43.length ();
    12711271                int _v_len62 = 0;
    12721272                if (_v_len61 < _v_len62)
     
    12741274                  break _block11__branch1;
    12751275                }
    1276                 int _v_len__step3 = (_v_len61 - _v_len62);
    1277                 int _v_len63 = _v_deref__deref__Get43.length ();
     1276                int _v_len__cond2 = (_v_len61 - _v_len62);
     1277                int _v_len63 = _v_deref__deref__Get44.length ();
    12781278                int _v_len64 = 0;
    12791279                if (_v_len63 < _v_len64)
     
    12811281                  break _block11__branch1;
    12821282                }
    1283                 int _v_len__cond2 = (_v_len63 - _v_len64);
     1283                int _v_len__step3 = (_v_len63 - _v_len64);
    12841284                if (!_c_8.termEquals (_v_deref__Get4, 0))
    12851285                {
     
    13871387          Expr _ve_breaks = Expr.empty;
    13881388          _ve_breaks = _v_deref__GetR3.subexpr (0, _v_len__breaks2);
    1389           refal.plus.Box.Put (Last_Breaks, new Expr ((Comparable) Expr.concat (_ve_breaks, _c_15)));
     1389          refal.plus.Box.Put (Last_Breaks, new Expr ((Comparable<?>) Expr.concat (_ve_breaks, _c_15)));
    13901390          _ve_1 = Expr.empty;
    13911391          break _block12;
     
    15041504            }
    15051505            Result _va_5 = new Result ();
    1506             Remove_Dupl_Decl (_ve_decls, _ve_subst, Expr.concat (_ve_xpr, (Comparable) _ve_len), _va_5);
     1506            Remove_Dupl_Decl (_ve_decls, _ve_subst, Expr.concat (_ve_xpr, (Comparable<?>) _ve_len), _va_5);
    15071507            _ve_xpr = _va_5.getExpr ();
    15081508            Result _ve_decl1 = new Result (Expr.empty);
     
    15921592            Result _v_Remove__Dupl__Decl2 = new Result (Expr.empty);
    15931593            Remove_Dupl_Decl (_ge_decls__4__5.getExpr (), _ge_subst__4__5.getExpr (), _ve_rest, _v_Remove__Dupl__Decl2);
    1594             _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_vs_split).toRight (_ve_xpr).toRight (_gt_var1__5).toRight (_gt_var2__6).yield (), _v_Remove__Dupl__Decl2.getExpr ()));
     1594            _v_res1.assign (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_split).toRight (_ve_xpr).toRight (_gt_var1__5).toRight (_gt_var2__6).yield (), _v_Remove__Dupl__Decl2.getExpr ()));
    15951595            break _block2;
    15961596          }
     
    16571657            Result _v_Remove__Dupl__Decl3 = new Result (Expr.empty);
    16581658            Remove_Dupl_Decl (_ve_decls, _ve_subst, _ve_rest, _v_Remove__Dupl__Decl3);
    1659             _v_res1.assign (Expr.concat ((Comparable) _ge_auxcall1.getExpr (), _v_Remove__Dupl__Decl3.getExpr ()));
     1659            _v_res1.assign (Expr.concat ((Comparable<?>) _ge_auxcall1.getExpr (), _v_Remove__Dupl__Decl3.getExpr ()));
    16601660            break _block2;
    16611661          }
     
    17371737                  break _block3;
    17381738                }
    1739                 _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_4).toRight (_vt_var).toRight (_ve_expr).yield ()));
     1739                _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_4).toRight (_vt_var).toRight (_ve_expr).yield ()));
    17401740                _v_res2.assign (_ve_decls);
    17411741                _v_res3.assign (_ve_subst);
     
    17791779            Result _gs_auxcall1 = new Result (Expr.empty);
    17801780            Free_Idx (_gs_auxcall1);
    1781             Expr _vt_new__var = new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_25).toRight ((Comparable) Expr.concat (_ve_name, _gs_auxcall1.getExpr ())).yield ());
     1781            Expr _vt_new__var = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_25).toRight ((Comparable<?>) Expr.concat (_ve_name, _gs_auxcall1.getExpr ())).yield ());
    17821782            Expr _ge_expr__5 = Expr.empty;
    17831783            _block4: {
     
    17921792              _ge_expr__5 = _ve_expr;
    17931793            }
    1794             _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_5).toRight (_vs_type).toRight (_vt_new__var).toRight (_ge_expr__5).yield ()));
    1795             _v_res2.assign (Expr.concat (_ve_decls, (Comparable) Expr.concat (_vs_type, _vt_new__var)));
    1796             _v_res3.assign (Expr.concat (_ve_subst, (Comparable) Expr.concat (_vt_var, _vt_new__var)));
     1794            _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_5).toRight (_vs_type).toRight (_vt_new__var).toRight (_ge_expr__5).yield ()));
     1795            _v_res2.assign (Expr.concat (_ve_decls, (Comparable<?>) Expr.concat (_vs_type, _vt_new__var)));
     1796            _v_res3.assign (Expr.concat (_ve_subst, (Comparable<?>) Expr.concat (_vt_var, _vt_new__var)));
    17971797          }
    17981798          break _exit1;
     
    18001800        break _block1;
    18011801      }
    1802       _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_5).toRight (_vs_type).toRight (_vt_var).toRight (_ve_expr).yield ()));
    1803       _v_res2.assign (Expr.concat (_ve_decls, (Comparable) Expr.concat (_vs_type, _vt_var)));
     1802      _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_5).toRight (_vs_type).toRight (_vt_var).toRight (_ve_expr).yield ()));
     1803      _v_res2.assign (Expr.concat (_ve_decls, (Comparable<?>) Expr.concat (_vs_type, _vt_var)));
    18041804      _v_res3.assign (_ve_subst);
    18051805    }
     
    19471947          Result _ge_auxcall7 = new Result (Expr.empty);
    19481948          refal.plus.List.Paren (_ve_1, _ge_auxcall7);
    1949           _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_26).toRight (_vs_op).toRight (_ge_auxcall7.getExpr ()).yield ()));
     1949          _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_26).toRight (_vs_op).toRight (_ge_auxcall7.getExpr ()).yield ()));
    19501950        }
    19511951        break _block1;
     
    19711971          throw new RefalException ("org.refal.plus.compiler.rfp_asail2asail", "Simplify_Infix", "Unexpected fail");
    19721972        }
    1973         _v_res1.assign (new Expr ((Comparable) _ge_auxcall8.getExpr ()));
     1973        _v_res1.assign (new Expr ((Comparable<?>) _ge_auxcall8.getExpr ()));
    19741974        break _block1;
    19751975      }
     
    20342034      Result _ge_auxcall2 = new Result (Expr.empty);
    20352035      refal.plus.List.Paren (_ve_1, _ge_auxcall2);
    2036       _v_res1.assign (new Expr ((Comparable) Expr.concat (_c_39, _ge_auxcall2.getExpr ())));
     2036      _v_res1.assign (new Expr ((Comparable<?>) Expr.concat (_c_39, _ge_auxcall2.getExpr ())));
    20372037    }
    20382038  }
     
    23612361    _block1: {
    23622362      _block1__branch1: {
    2363         Expr _v_compose1 = Expr.getConcatenator ().toRight (_gs_arg1).toRight ((Comparable) _ge_arg2).toRight ((Comparable) _ge_arg3).yield ();
     2363        Expr _v_compose1 = Expr.getConcatenator ().toRight (_gs_arg1).toRight ((Comparable<?>) _ge_arg2).toRight ((Comparable<?>) _ge_arg3).yield ();
    23642364        if (_v_compose1.isSymbolAt ((0 + 1)))
    23652365        {
     
    23722372        Expr _v_deref__compose1 = (Expr) _v_compose1.at ((0 + 1));
    23732373        Expr _v_deref__compose12 = (Expr) _v_compose1.at ((0 + 1 + 1));
     2374        if (_v_deref__compose1.length () < 1)
     2375        {
     2376          break _block1__branch1;
     2377        }
     2378        if (_v_deref__compose1.length () > ((_v_deref__compose1.length () - 1) + (_v_deref__compose1.length () - 1) + 1))
     2379        {
     2380          break _block1__branch1;
     2381        }
    23742382        if (_v_deref__compose12.length () < 1)
    23752383        {
     
    23772385        }
    23782386        if (_v_deref__compose12.length () > ((_v_deref__compose12.length () - 1) + (_v_deref__compose12.length () - 1) + 1))
    2379         {
    2380           break _block1__branch1;
    2381         }
    2382         if (_v_deref__compose1.length () < 1)
    2383         {
    2384           break _block1__branch1;
    2385         }
    2386         if (_v_deref__compose1.length () > ((_v_deref__compose1.length () - 1) + (_v_deref__compose1.length () - 1) + 1))
    23872387        {
    23882388          break _block1__branch1;
     
    24582458        Result _ge_auxcall2 = new Result (Expr.empty);
    24592459        refal.plus.List.Foldr1 (_c_49, Expr.empty, _ge_arg3, _ge_auxcall2);
    2460         if (!refal.plus.Apply.Apply (_gs_arg1, Expr.concat ((Comparable) _ge_auxcall1.getExpr (), (Comparable) _ge_auxcall2.getExpr ()), _v_res1)) {
     2460        if (!refal.plus.Apply.Apply (_gs_arg1, Expr.concat ((Comparable<?>) _ge_auxcall1.getExpr (), (Comparable<?>) _ge_auxcall2.getExpr ()), _v_res1)) {
    24612461          return false;
    24622462        }
    24632463        break _block1;
    24642464      }
    2465       _v_res1.assign (Expr.concat ((Comparable) _ge_arg2, (Comparable) _ge_arg3));
     2465      _v_res1.assign (Expr.concat ((Comparable<?>) _ge_arg2, (Comparable<?>) _ge_arg3));
    24662466    }
    24672467    return true;
     
    25092509  }
    25102510
    2511   static  boolean IsInt_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    2512   {
    2513     int _v_len1 = _ge_arg1.length ();
    2514     int _v_len2 = 0;
    2515     if (_v_len1 < _v_len2)
    2516     {
    2517       throw new RefalException (_c_50);
    2518     }
    2519     int _v_len__stub1 = (_v_len1 - _v_len2);
    2520     Expr _v_stub1 = Expr.empty;
    2521     _v_stub1 = _ge_arg1.subexpr (0, _v_len__stub1);
    2522     if (!refal.plus.Class.IsInt (_v_stub1))
    2523     {
    2524       return false;
    2525     }
    2526     _v_res1.assign (Expr.empty);
    2527     return true;
    2528   }
    2529 
    25302511  static  boolean Add_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    25312512  {
     
    25502531  }
    25512532
     2533  static  boolean IsInt_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
     2534  {
     2535    int _v_len1 = _ge_arg1.length ();
     2536    int _v_len2 = 0;
     2537    if (_v_len1 < _v_len2)
     2538    {
     2539      throw new RefalException (_c_50);
     2540    }
     2541    int _v_len__stub1 = (_v_len1 - _v_len2);
     2542    Expr _v_stub1 = Expr.empty;
     2543    _v_stub1 = _ge_arg1.subexpr (0, _v_len__stub1);
     2544    if (!refal.plus.Class.IsInt (_v_stub1))
     2545    {
     2546      return false;
     2547    }
     2548    _v_res1.assign (Expr.empty);
     2549    return true;
     2550  }
     2551
     2552  static  boolean Gt_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
     2553  {
     2554    if (_ge_arg1.length () != 2)
     2555    {
     2556      throw new RefalException (_c_50);
     2557    }
     2558    if (_ge_arg1.isSymbolAt (0))
     2559    {
     2560      throw new RefalException (_c_50);
     2561    }
     2562    if (_ge_arg1.isSymbolAt ((0 + 1)))
     2563    {
     2564      throw new RefalException (_c_50);
     2565    }
     2566    Expr _v_deref__arg1 = (Expr) _ge_arg1.at (0);
     2567    Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1));
     2568    int _v_len1 = _v_deref__arg1.length ();
     2569    int _v_len2 = 0;
     2570    if (_v_len1 < _v_len2)
     2571    {
     2572      throw new RefalException (_c_50);
     2573    }
     2574    int _v_len__stub1 = (_v_len1 - _v_len2);
     2575    int _v_len3 = _v_deref__arg12.length ();
     2576    int _v_len4 = 0;
     2577    if (_v_len3 < _v_len4)
     2578    {
     2579      throw new RefalException (_c_50);
     2580    }
     2581    int _v_len__stub2 = (_v_len3 - _v_len4);
     2582    Expr _v_stub1 = Expr.empty;
     2583    _v_stub1 = _v_deref__arg1.subexpr (0, _v_len__stub1);
     2584    Expr _v_stub2 = Expr.empty;
     2585    _v_stub2 = _v_deref__arg12.subexpr (0, _v_len__stub2);
     2586    if (!refal.plus.Compare.Gt (_v_stub1, _v_stub2))
     2587    {
     2588      return false;
     2589    }
     2590    _v_res1.assign (Expr.empty);
     2591    return true;
     2592  }
     2593
    25522594  static  boolean Lt_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    25532595  {
     
    25662608    Expr _v_deref__arg1 = (Expr) _ge_arg1.at (0);
    25672609    Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1));
    2568     int _v_len1 = _v_deref__arg12.length ();
     2610    int _v_len1 = _v_deref__arg1.length ();
    25692611    int _v_len2 = 0;
    25702612    if (_v_len1 < _v_len2)
     
    25732615    }
    25742616    int _v_len__stub1 = (_v_len1 - _v_len2);
    2575     int _v_len3 = _v_deref__arg1.length ();
     2617    int _v_len3 = _v_deref__arg12.length ();
    25762618    int _v_len4 = 0;
    25772619    if (_v_len3 < _v_len4)
     
    25802622    }
    25812623    int _v_len__stub2 = (_v_len3 - _v_len4);
     2624    Expr _v_stub1 = Expr.empty;
     2625    _v_stub1 = _v_deref__arg1.subexpr (0, _v_len__stub1);
    25822626    Expr _v_stub2 = Expr.empty;
    2583     _v_stub2 = _v_deref__arg1.subexpr (0, _v_len__stub2);
    2584     Expr _v_stub1 = Expr.empty;
    2585     _v_stub1 = _v_deref__arg12.subexpr (0, _v_len__stub1);
    2586     if (!refal.plus.Compare.Lt (_v_stub2, _v_stub1))
     2627    _v_stub2 = _v_deref__arg12.subexpr (0, _v_len__stub2);
     2628    if (!refal.plus.Compare.Lt (_v_stub1, _v_stub2))
    25872629    {
    25882630      return false;
     
    26082650    Expr _v_deref__arg1 = (Expr) _ge_arg1.at (0);
    26092651    Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1));
    2610     int _v_len1 = _v_deref__arg12.length ();
     2652    int _v_len1 = _v_deref__arg1.length ();
    26112653    int _v_len2 = 0;
    26122654    if (_v_len1 < _v_len2)
     
    26152657    }
    26162658    int _v_len__stub1 = (_v_len1 - _v_len2);
    2617     int _v_len3 = _v_deref__arg1.length ();
     2659    int _v_len3 = _v_deref__arg12.length ();
    26182660    int _v_len4 = 0;
    26192661    if (_v_len3 < _v_len4)
     
    26222664    }
    26232665    int _v_len__stub2 = (_v_len3 - _v_len4);
     2666    Expr _v_stub1 = Expr.empty;
     2667    _v_stub1 = _v_deref__arg1.subexpr (0, _v_len__stub1);
    26242668    Expr _v_stub2 = Expr.empty;
    2625     _v_stub2 = _v_deref__arg1.subexpr (0, _v_len__stub2);
    2626     Expr _v_stub1 = Expr.empty;
    2627     _v_stub1 = _v_deref__arg12.subexpr (0, _v_len__stub1);
    2628     if (!refal.plus.Compare.Ne (_v_stub2, _v_stub1))
    2629     {
    2630       return false;
    2631     }
    2632     _v_res1.assign (Expr.empty);
    2633     return true;
    2634   }
    2635 
    2636   static  boolean Gt_0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    2637   {
    2638     if (_ge_arg1.length () != 2)
    2639     {
    2640       throw new RefalException (_c_50);
    2641     }
    2642     if (_ge_arg1.isSymbolAt (0))
    2643     {
    2644       throw new RefalException (_c_50);
    2645     }
    2646     if (_ge_arg1.isSymbolAt ((0 + 1)))
    2647     {
    2648       throw new RefalException (_c_50);
    2649     }
    2650     Expr _v_deref__arg1 = (Expr) _ge_arg1.at (0);
    2651     Expr _v_deref__arg12 = (Expr) _ge_arg1.at ((0 + 1));
    2652     int _v_len1 = _v_deref__arg12.length ();
    2653     int _v_len2 = 0;
    2654     if (_v_len1 < _v_len2)
    2655     {
    2656       throw new RefalException (_c_50);
    2657     }
    2658     int _v_len__stub1 = (_v_len1 - _v_len2);
    2659     int _v_len3 = _v_deref__arg1.length ();
    2660     int _v_len4 = 0;
    2661     if (_v_len3 < _v_len4)
    2662     {
    2663       throw new RefalException (_c_50);
    2664     }
    2665     int _v_len__stub2 = (_v_len3 - _v_len4);
    2666     Expr _v_stub2 = Expr.empty;
    2667     _v_stub2 = _v_deref__arg1.subexpr (0, _v_len__stub2);
    2668     Expr _v_stub1 = Expr.empty;
    2669     _v_stub1 = _v_deref__arg12.subexpr (0, _v_len__stub1);
    2670     if (!refal.plus.Compare.Gt (_v_stub2, _v_stub1))
     2669    _v_stub2 = _v_deref__arg12.subexpr (0, _v_len__stub2);
     2670    if (!refal.plus.Compare.Ne (_v_stub1, _v_stub2))
    26712671    {
    26722672      return false;
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/rfp_asail_cpp.java

    r3370 r3428  
    4848  static  final Expr _c_8 = _c_47.subexpr (3, 1);
    4949  static  final Expr _c_9 = Expr.fromSequence ("static void init_ () {");
    50   static  final Expr _c_10 = new Expr ((Comparable) _c_183);
     50  static  final Expr _c_10 = new Expr ((Comparable<?>) _c_183);
    5151  static  final Expr _c_11 = new Expr (Symbol.newWord ("STATIC"));
    5252  static  final Expr _c_12 = new Expr (Symbol.newWord ("DECL-OBJ"));
    53   static  final Expr _c_13 = _c_183.subexpr (41, 1);
     53  static  final Expr _c_13 = _c_6.subexpr (1, 1);
    5454  static  final Expr _c_14 = Expr.fromSequence (" = ");
    5555  static  final Expr _c_184 = Expr.fromSequence ("#include <rf_core.hh>");
    5656  static  final Expr _c_185 = Expr.fromSequence ("using namespace rfrt;");
    57   static  final Expr _c_15 = Expr.concat ((Comparable) _c_184, (Comparable) _c_185);
     57  static  final Expr _c_15 = Expr.concat ((Comparable<?>) _c_184, (Comparable<?>) _c_185);
    5858  static  final Expr _c_16 = new Expr (Symbol.newWord ("UNDEF"));
    5959  static  final Expr _c_17 = new Expr (Symbol.newWord ("NATIVE"));
     
    7272  static  final Expr _c_26 = new Expr (Symbol.newWord ("FUNC?"));
    7373  static  final Expr _c_27 = Expr.getConcatenator (4).toRight (Symbol.newWord ("org")).toRight (Symbol.newWord ("refal")).toRight (Symbol.newWord ("plus")).toRight (Symbol.newWord ("wrappers")).yield ();
    74   static  final Expr _c_28 = _c_7.subexpr (14, 1);
     74  static  final Expr _c_28 = _c_184.subexpr (12, 1);
    7575  static  final Expr _c_29 = new Expr (Symbol.newWord ("TRACEALL"));
    7676  static  final Expr _c_30 = _c_184.subexpr (17, 1);
    7777  static  final Expr _c_31 = new Expr (Symbol.newWord ("DECL-FUNC"));
    7878  static  final Expr _c_32 = Expr.fromSequence ("RF_ARG ");
    79   static  final Expr _c_163 = Expr.concat ((Comparable) Expr.empty, Symbol.newWord ("Vars"));
     79  static  final Expr _c_163 = Expr.concat ((Comparable<?>) Expr.empty, Symbol.newWord ("Vars"));
    8080  static  final Expr _c_33 = _c_163.subexpr (1, 1);
    8181  static  final Expr _c_34 = Expr.fromSequence ("RF_RES ");
     
    8787  static  final Expr _c_39 = new Expr (Symbol.newWord ("TRACE"));
    8888  static  final Expr _c_40 = new Expr (Symbol.newWord ("IF-INT-CMP"));
    89   static  final Expr _c_41 = _c_37.subexpr (1, 1);
     89  static  final Expr _c_41 = _c_14.subexpr (0, 1);
    9090  static  final Expr _c_92 = Expr.fromSequence ("if (RF_CALL (");
    9191  static  final Expr _c_42 = _c_92.subexpr (0, 4);
     
    9696  static  final Expr _c_48 = Expr.fromSequence ("for ( ; ; ");
    9797  static  final Expr _c_49 = new Expr (Symbol.newWord ("TRY"));
    98   static  final Expr _c_50 = new Expr ((Comparable) Expr.fromSequence ("RF_TRAP"));
     98  static  final Expr _c_50 = new Expr ((Comparable<?>) Expr.fromSequence ("RF_TRAP"));
    9999  static  final Expr _c_51 = new Expr (Symbol.newWord ("CATCH-ERROR"));
    100   static  final Expr _c_52 = new Expr ((Comparable) Expr.fromSequence ("RF_CLEANUP;"));
    101   static  final Expr _c_53 = new Expr ((Comparable) Expr.fromSequence ("RF_WITH"));
     100  static  final Expr _c_52 = new Expr ((Comparable<?>) Expr.fromSequence ("RF_CLEANUP;"));
     101  static  final Expr _c_53 = new Expr ((Comparable<?>) Expr.fromSequence ("RF_WITH"));
    102102  static  final Expr _c_54 = new Expr (Symbol.newWord ("RETFAIL"));
    103103  static  final Expr _c_186 = Expr.fromSequence ("else RF_RETFAIL;");
    104   static  final Expr _c_55 = new Expr ((Comparable) _c_186.subexpr (5, 11));
     104  static  final Expr _c_55 = new Expr ((Comparable<?>) _c_186.subexpr (5, 11));
    105105  static  final Expr _c_56 = new Expr (Symbol.newWord ("FATAL"));
    106   static  final Expr _c_57 = new Expr ((Comparable) Expr.fromSequence ("RF_FUNC_ERROR (unexpected_fail);"));
     106  static  final Expr _c_57 = new Expr ((Comparable<?>) Expr.fromSequence ("RF_FUNC_ERROR (unexpected_fail);"));
    107107  static  final Expr _c_58 = new Expr (Symbol.newWord ("LSPLIT"));
    108108  static  final Expr _c_59 = Expr.fromSequence ("RF_lsplit (");
     
    114114  static  final Expr _c_86 = Expr.fromSequence ("extern Expr ");
    115115  static  final Expr _c_65 = _c_86.subexpr (7, 5);
    116   static  final Expr _c_66 = _c_42.subexpr (2, 2);
     116  static  final Expr _c_66 = _c_38.subexpr (7, 2);
    117117  static  final Expr _c_67 = new Expr (Symbol.newWord ("DROP"));
    118118  static  final Expr _c_68 = Expr.fromSequence (".drop ();");
     
    122122  static  final Expr _c_72 = Expr.fromSequence ("RF_ERROR (");
    123123  static  final Expr _c_74 = _c_163.subexpr (0, 1);
    124   static  final Expr _c_76 = _c_75.subexpr (0, 1);
     124  static  final Expr _c_76 = _c_73.subexpr (0, 1);
    125125  static  final Expr _c_77 = _c_183.subexpr (0, 7);
    126126  static  final Expr _c_78 = new Expr (new Func () {
     
    147147  static  final Expr _c_90 = new Expr (Symbol.newWord ("Exprs"));
    148148  static  final Expr _c_91 = _c_172.subexpr (32, 2);
    149   static  final Expr _c_93 = new Expr ((Comparable) Expr.fromSequence ("return true;"));
    150   static  final Expr _c_94 = new Expr ((Comparable) _c_186);
     149  static  final Expr _c_93 = new Expr ((Comparable<?>) Expr.fromSequence ("return true;"));
     150  static  final Expr _c_94 = new Expr ((Comparable<?>) _c_186);
    151151  static  final Expr _c_95 = new Expr (Symbol.newWord ("TAILCALL?"));
    152152  static  final Expr _c_96 = new Expr (Symbol.newWord ("TAILCALL"));
    153   static  final Expr _c_97 = _c_35.subexpr (0, 3);
     153  static  final Expr _c_97 = _c_32.subexpr (0, 3);
    154154  static  final Expr _c_98 = Expr.fromSequence ("empty");
    155155  static  final Expr _c_99 = new Expr (new Func () {
     
    169169  static  final Expr _c_108 = new Expr (Symbol.newWord ("ERROR-EXPR"));
    170170  static  final Expr _c_109 = Expr.fromSequence ("err");
    171   static  final Expr _c_110 = _c_7.subexpr (4, 2);
     171  static  final Expr _c_110 = _c_83.subexpr (4, 2);
    172172  static  final Expr _c_151 = Expr.fromSequence (" + Expr::create<rftype::Word>(\"");
    173173  static  final Expr _c_113 = _c_151.subexpr (3, 28);
     
    202202  static  final Expr _c_135 = Expr.fromSequence (".term_eq (");
    203203  static  final Expr _c_136 = new Expr (Symbol.newWord ("NOT"));
    204   static  final Expr _c_137 = _c_131.subexpr (0, 1);
     204  static  final Expr _c_137 = _c_125.subexpr (0, 1);
    205205  static  final Expr _c_138 = new Expr (Symbol.newWord ("INC-ITER"));
    206206  static  final Expr _c_139 = Expr.fromSequence (")++");
     
    224224  static  final Expr _c_158 = Expr.fromSequence ("\r");
    225225  static  final Expr _c_159 = Expr.fromSequence ("\\r");
    226   static  final Expr _c_160 = _c_82.subexpr (0, 1);
     226  static  final Expr _c_160 = _c_151.subexpr (30, 1);
    227227  static  final Expr _c_161 = Expr.fromSequence ("\\\"");
    228228  static  final Expr _c_162 = Expr.fromSequence ("RF_VOID");
     
    230230  static  final Expr _c_165 = Expr.fromSequence (";;)");
    231231  static  final Expr _c_166 = _c_27.subexpr (1, 2);
    232   static  final Expr _c_167 = _c_166.subexpr (0, 1);
     232  static  final Expr _c_167 = _c_27.subexpr (1, 1);
    233233  static  final Expr _c_168 = _c_47.subexpr (1, 2);
    234234  static  final Expr _c_169 = _c_185.subexpr (6, 10);
    235   static  final Expr _c_170 = new Expr ((Comparable) _c_8);
     235  static  final Expr _c_170 = new Expr ((Comparable<?>) _c_8);
    236236  static  final Expr _c_171 = new Expr (new Func () {
    237237    public boolean eval (Expr arg, Result res) throws RefalException {
     
    307307        break _block2;
    308308      }
    309       refal.plus.Box.Store (Entry, new Expr ((Comparable) Expr.concat (_ve_ModuleName, _c_4)));
     309      refal.plus.Box.Store (Entry, new Expr ((Comparable<?>) Expr.concat (_ve_ModuleName, _c_4)));
    310310    }
    311311    refal.plus.Box.Store (Entry_Name, Expr.empty);
     
    365365            Expr _vv_name = Expr.empty;
    366366            _vv_name = _v_Get1.getExpr ().subexpr (0, _v_len__name);
    367             _ve_entry = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_7).toRight (_vv_name).toRight (_c_6).yield ());
     367            _ve_entry = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_7).toRight (_vv_name).toRight (_c_6).yield ());
    368368            break _block4;
    369369          }
     
    404404                  break _block3__branch1;
    405405                }
    406                 _ve_init = Expr.getConcatenator ().toRight (_ve_nc.getExpr ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_9).toRight ((Comparable) _ve_init__consts).toRight (_c_8).yield ()).toRight (_c_10).toRight (_v_Map2.getExpr ()).yield ();
     406                _ve_init = Expr.getConcatenator ().toRight (_ve_nc.getExpr ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_9).toRight ((Comparable<?>) _ve_init__consts).toRight (_c_8).yield ()).toRight (_c_10).toRight (_v_Map2.getExpr ()).yield ();
    407407                break _exit__iter1;
    408408              }
     
    471471                _ge_name__8 = _va_2.getExpr ();
    472472              }
    473               _ve_init__consts = Expr.concat (_ve_init__consts, (Comparable) Expr.getConcatenator ().toRight (_ge_name__8).toRight (_c_14).toRight (_ve_value).toRight (_c_13).yield ());
     473              _ve_init__consts = Expr.concat (_ve_init__consts, (Comparable<?>) Expr.getConcatenator ().toRight (_ge_name__8).toRight (_c_14).toRight (_ve_value).toRight (_c_13).yield ());
    474474              _ve_c__exprs = _ve_rest;
    475475            }
     
    582582            }
    583583            int _v_len__name = (_v_len7 - _v_len8);
    584             int _v_len9 = _v_deref__deref__item23.length ();
     584            int _v_len9 = _v_deref__deref__item22.length ();
    585585            int _v_len10 = 0;
    586586            if (_v_len9 < _v_len10)
     
    588588              break _block2__branch2;
    589589            }
    590             int _v_len__out = (_v_len9 - _v_len10);
    591             int _v_len11 = _v_deref__deref__item22.length ();
     590            int _v_len__in = (_v_len9 - _v_len10);
     591            int _v_len11 = _v_deref__deref__item23.length ();
    592592            int _v_len12 = 0;
    593593            if (_v_len11 < _v_len12)
     
    595595              break _block2__branch2;
    596596            }
    597             int _v_len__in = (_v_len11 - _v_len12);
     597            int _v_len__out = (_v_len11 - _v_len12);
    598598            if (!_c_17.termEquals (_v_deref__item2, 0))
    599599            {
     
    665665            _vs__dollar_tmp_m_126_m_74 = _v_Del__Pragmas2.getExpr ().subexpr ((0 + _v_len__rfRes), 1);
    666666            Result _va_3 = new Result ();
    667             ASAIL_To_CPP (new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_23).toRight ((Comparable) _ve_name).toRight ((Comparable) _ve_rfArg).toRight ((Comparable) _ve_rfRes).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_22).toRight (_ve_name).toRight (_c_21).yield ()).yield ()), _va_3);
     667            ASAIL_To_CPP (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_23).toRight ((Comparable<?>) _ve_name).toRight ((Comparable<?>) _ve_rfArg).toRight ((Comparable<?>) _ve_rfRes).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_22).toRight (_ve_name).toRight (_c_21).yield ()).yield ()), _va_3);
    668668            _ve_cpp__item = _va_3.getExpr ();
    669669            break _block2;
     
    742742            Result _gs_auxcall8 = new Result (Expr.empty);
    743743            refal.plus.Convert.ToWord (_ge_auxcall7.getExpr (), _gs_auxcall8);
    744             refal.plus.Table.Bind (Unavailable_Imports, _ve_name, Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_23).toRight ((Comparable) _gs_auxcall8.getExpr ()).toRight (_vt_args).toRight (_vt_ress).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_22).toRight (_ve_n).toRight (_c_21).yield ()).yield ());
     744            refal.plus.Table.Bind (Unavailable_Imports, _ve_name, Expr.getConcatenator ().toRight (_vs_tag).toRight (_c_23).toRight ((Comparable<?>) _gs_auxcall8.getExpr ()).toRight (_vt_args).toRight (_vt_ress).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_22).toRight (_ve_n).toRight (_c_21).yield ()).yield ());
    745745            _ve_cpp__item = Expr.empty;
    746746            break _block2;
     
    769769            Expr _v_deref__deref__item4 = (Expr) _v_deref__item4.at ((0 + 1 + 1 + 1));
    770770            Expr _v_deref__deref__item42 = (Expr) _v_deref__item4.at ((0 + 1 + 1 + 1 + 1));
    771             int _v_len25 = _v_deref__deref__item42.length ();
     771            int _v_len25 = _v_deref__deref__item4.length ();
    772772            int _v_len26 = 0;
    773773            if (_v_len25 < _v_len26)
     
    775775              break _block2__branch4;
    776776            }
    777             int _v_len__ress = (_v_len25 - _v_len26);
    778             int _v_len27 = _v_deref__deref__item4.length ();
     777            int _v_len__args = (_v_len25 - _v_len26);
     778            int _v_len27 = _v_deref__deref__item42.length ();
    779779            int _v_len28 = 0;
    780780            if (_v_len27 < _v_len28)
     
    782782              break _block2__branch4;
    783783            }
    784             int _v_len__args = (_v_len27 - _v_len28);
     784            int _v_len__ress = (_v_len27 - _v_len28);
    785785            if (!_v_deref__item4.isSymbolAt (0))
    786786            {
     
    878878                Result _ge_name__6 = new Result (Expr.empty);
    879879                refal.plus.List.Intersperse (_c_30, _ge_auxcall11.getExpr (), _ge_name__6);
    880                 refal.plus.Box.Store (Current_Trace, Expr.concat (_ge_name__6.getExpr (), (Comparable) _ve_ress));
     880                refal.plus.Box.Store (Current_Trace, Expr.concat (_ge_name__6.getExpr (), (Comparable<?>) _ve_ress));
    881881                Result _ge_auxcall12 = new Result (Expr.empty);
    882882                Trace_Enter (_ge_name__6.getExpr (), _ve_args, _ge_auxcall12);
     
    904904            Result _ge_auxcall18 = new Result (Expr.empty);
    905905            ASAIL_To_CPP (_ve_body, _ge_auxcall18);
    906             _ve_cpp__item = Expr.concat (_ge_auxcall14.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_c_38).toRight (_ge_auxcall15.getExpr ()).toRight (_c_37).toRight (_ge_auxcall16.getExpr ()).toRight (_c_37).toRight (_ge_auxcall17.getExpr ()).toRight (_c_36).toRight ((Comparable) Expr.getConcatenator ().toRight (_ve_trace__enter).toRight (_ge_auxcall18.getExpr ()).toRight (_ve_trace__exit).yield ()).toRight (_c_35).yield ());
     906            _ve_cpp__item = Expr.concat (_ge_auxcall14.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_38).toRight (_ge_auxcall15.getExpr ()).toRight (_c_37).toRight (_ge_auxcall16.getExpr ()).toRight (_c_37).toRight (_ge_auxcall17.getExpr ()).toRight (_c_36).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_ve_trace__enter).toRight (_ge_auxcall18.getExpr ()).toRight (_ve_trace__exit).yield ()).toRight (_c_35).yield ());
    907907            break _block2;
    908908          }
     
    950950            Expr _v_deref__deref__item6 = (Expr) _v_deref__item6.at ((0 + 1 + 1));
    951951            Expr _v_deref__deref__item62 = (Expr) _v_deref__item6.at ((0 + 1 + 1 + 1));
    952             int _v_len33 = _v_deref__deref__item62.length ();
     952            int _v_len33 = _v_deref__deref__item6.length ();
    953953            int _v_len34 = 0;
    954954            if (_v_len33 < _v_len34)
     
    956956              break _block2__branch6;
    957957            }
    958             int _v_len__arg2 = (_v_len33 - _v_len34);
    959             int _v_len35 = _v_deref__deref__item6.length ();
     958            int _v_len__arg1 = (_v_len33 - _v_len34);
     959            int _v_len35 = _v_deref__deref__item62.length ();
    960960            int _v_len36 = 0;
    961961            if (_v_len35 < _v_len36)
     
    963963              break _block2__branch6;
    964964            }
    965             int _v_len__arg1 = (_v_len35 - _v_len36);
     965            int _v_len__arg2 = (_v_len35 - _v_len36);
    966966            if (!_c_40.termEquals (_v_deref__item6, 0))
    967967            {
     
    986986            Result _ge_auxcall21 = new Result (Expr.empty);
    987987            ASAIL_To_CPP (_ve_body, _ge_auxcall21);
    988             _ve_cpp__item = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_42).toRight (_ge_auxcall19.getExpr ()).toRight (_c_41).toRight (_vs_op).toRight (_c_41).toRight (_ge_auxcall20.getExpr ()).toRight (_c_36).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall21.getExpr ()).toRight (_c_8).yield ());
     988            _ve_cpp__item = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight (_ge_auxcall19.getExpr ()).toRight (_c_41).toRight (_vs_op).toRight (_c_41).toRight (_ge_auxcall20.getExpr ()).toRight (_c_36).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall21.getExpr ()).toRight (_c_8).yield ());
    989989            break _block2;
    990990          }
     
    10141014            Result _ge_auxcall23 = new Result (Expr.empty);
    10151015            ASAIL_To_CPP (_ve_body, _ge_auxcall23);
    1016             _ve_cpp__item = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_42).toRight (_ge_auxcall22.getExpr ()).toRight (_c_36).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall23.getExpr ()).toRight (_c_8).yield ());
     1016            _ve_cpp__item = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight (_ge_auxcall22.getExpr ()).toRight (_c_36).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall23.getExpr ()).toRight (_c_8).yield ());
    10171017            break _block2;
    10181018          }
     
    10641064            }
    10651065            int _v_len__break__label = (_v_len43 - _v_len44);
    1066             int _v_len45 = _v_deref__deref__item84.length ();
     1066            int _v_len45 = _v_deref__deref__item83.length ();
    10671067            int _v_len46 = 0;
    10681068            if (_v_len45 < _v_len46)
     
    10701070              break _block2__branch8;
    10711071            }
    1072             int _v_len__step = (_v_len45 - _v_len46);
    1073             int _v_len47 = _v_deref__deref__item83.length ();
     1072            int _v_len__cond = (_v_len45 - _v_len46);
     1073            int _v_len47 = _v_deref__deref__item84.length ();
    10741074            int _v_len48 = 0;
    10751075            if (_v_len47 < _v_len48)
     
    10771077              break _block2__branch8;
    10781078            }
    1079             int _v_len__cond = (_v_len47 - _v_len48);
     1079            int _v_len__step = (_v_len47 - _v_len48);
    10801080            if (!_c_45.termEquals (_v_deref__item8, 0))
    10811081            {
     
    11041104                ASAIL_To_CPP (_ve_body, _ge_auxcall24);
    11051105                Result _ge_auxcall25 = new Result (Expr.empty);
    1106                 refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_46, _ve_cont__label)), _ge_auxcall25);
    1107                 _ge_body__5 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall24.getExpr ()).toRight (_c_8).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall25.getExpr ()).toRight (_c_47).yield ()).toRight (_c_8).yield ());
     1106                refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_46, _ve_cont__label)), _ge_auxcall25);
     1107                _ge_body__5 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall24.getExpr ()).toRight (_c_8).yield ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall25.getExpr ()).toRight (_c_47).yield ()).toRight (_c_8).yield ());
    11081108                break _block8;
    11091109              }
    11101110              Result _ge_auxcall26 = new Result (Expr.empty);
    11111111              ASAIL_To_CPP (_ve_body, _ge_auxcall26);
    1112               _ge_body__5 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall26.getExpr ()).toRight (_c_8).yield ());
     1112              _ge_body__5 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall26.getExpr ()).toRight (_c_8).yield ());
    11131113            }
    11141114            Expr _ve_break = Expr.empty;
     
    11221122                _vt__dollar_tmp_m_174_m_26 = _ve_break__label.subexpr (0, 1);
    11231123                Result _ge_auxcall27 = new Result (Expr.empty);
    1124                 refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_46, _ve_break__label)), _ge_auxcall27);
    1125                 _ve_break = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall27.getExpr ()).toRight (_c_47).yield ());
     1124                refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_46, _ve_break__label)), _ge_auxcall27);
     1125                _ve_break = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall27.getExpr ()).toRight (_c_47).yield ());
    11261126                break _block9;
    11271127              }
     
    11301130            Result _ge_auxcall28 = new Result (Expr.empty);
    11311131            Step_To_CPP (_ve_step, _ge_auxcall28);
    1132             _ve_cpp__item = Expr.getConcatenator ().toRight ((Comparable) Expr.getConcatenator ().toRight (_c_48).toRight (_ge_auxcall28.getExpr ()).toRight (_c_36).yield ()).toRight (_ge_body__5).toRight (_ve_break).yield ();
     1132            _ve_cpp__item = Expr.getConcatenator ().toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_48).toRight (_ge_auxcall28.getExpr ()).toRight (_c_36).yield ()).toRight (_ge_body__5).toRight (_ve_break).yield ();
    11331133            break _block2;
    11341134          }
     
    11691169            ASAIL_To_CPP (_ve_body, _ge_auxcall29);
    11701170            Result _ge_auxcall30 = new Result (Expr.empty);
    1171             refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_46, _ve_label)), _ge_auxcall30);
    1172             _ve_cpp__item = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall29.getExpr ()).toRight (_c_8).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall30.getExpr ()).toRight (_c_47).yield ());
     1171            refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_46, _ve_label)), _ge_auxcall30);
     1172            _ve_cpp__item = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall29.getExpr ()).toRight (_c_8).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_46).toRight (_ge_auxcall30.getExpr ()).toRight (_c_47).yield ());
    11731173            break _block2;
    11741174          }
     
    11941194            Result _ge_auxcall31 = new Result (Expr.empty);
    11951195            ASAIL_To_CPP (_ve_body, _ge_auxcall31);
    1196             _ve_cpp__item = Expr.concat (_c_50, (Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) _ge_auxcall31.getExpr ()).toRight (_c_8).yield ());
     1196            _ve_cpp__item = Expr.concat (_c_50, (Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) _ge_auxcall31.getExpr ()).toRight (_c_8).yield ());
    11971197            break _block2;
    11981198          }
     
    12181218            Result _ge_auxcall32 = new Result (Expr.empty);
    12191219            ASAIL_To_CPP (_ve_body, _ge_auxcall32);
    1220             _ve_cpp__item = Expr.concat (_c_53, (Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) Expr.concat (_c_52, _ge_auxcall32.getExpr ())).toRight (_c_8).yield ());
     1220            _ve_cpp__item = Expr.concat (_c_53, (Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) Expr.concat (_c_52, _ge_auxcall32.getExpr ())).toRight (_c_8).yield ());
    12211221            break _block2;
    12221222          }
     
    13171317            Result _ge_auxcall36 = new Result (Expr.empty);
    13181318            refal.plus.CppMangle.Rfp2Cpp (_vt_var2, _ge_auxcall36);
    1319             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_59).toRight (_ge_auxcall33.getExpr ()).toRight (_c_37).toRight (_ge_auxcall34.getExpr ()).toRight (_c_37).toRight (_ge_auxcall35.getExpr ()).toRight (_c_37).toRight (_ge_auxcall36.getExpr ()).toRight (_c_6).yield ());
     1319            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_59).toRight (_ge_auxcall33.getExpr ()).toRight (_c_37).toRight (_ge_auxcall34.getExpr ()).toRight (_c_37).toRight (_ge_auxcall35.getExpr ()).toRight (_c_37).toRight (_ge_auxcall36.getExpr ()).toRight (_c_6).yield ());
    13201320            break _block2;
    13211321          }
     
    13651365            Result _ge_auxcall40 = new Result (Expr.empty);
    13661366            refal.plus.CppMangle.Rfp2Cpp (_vt_var2, _ge_auxcall40);
    1367             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_61).toRight (_ge_auxcall37.getExpr ()).toRight (_c_37).toRight (_ge_auxcall38.getExpr ()).toRight (_c_37).toRight (_ge_auxcall39.getExpr ()).toRight (_c_37).toRight (_ge_auxcall40.getExpr ()).toRight (_c_6).yield ());
     1367            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_61).toRight (_ge_auxcall37.getExpr ()).toRight (_c_37).toRight (_ge_auxcall38.getExpr ()).toRight (_c_37).toRight (_ge_auxcall39.getExpr ()).toRight (_c_37).toRight (_ge_auxcall40.getExpr ()).toRight (_c_6).yield ());
    13681368            break _block2;
    13691369          }
     
    14111411            Result _ge_auxcall42 = new Result (Expr.empty);
    14121412            Expr_Int_To_CPP (_ve_expr, _ge_auxcall42);
    1413             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall41.getExpr ()).toRight (_c_14).toRight (_ge_auxcall42.getExpr ()).toRight (_c_13).yield ());
     1413            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall41.getExpr ()).toRight (_c_14).toRight (_ge_auxcall42.getExpr ()).toRight (_c_13).yield ());
    14141414            break _block2;
    14151415          }
     
    14391439            Result _ge_auxcall44 = new Result (Expr.empty);
    14401440            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall44);
    1441             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall43.getExpr ()).toRight (_c_14).toRight (_ge_auxcall44.getExpr ()).toRight (_c_13).yield ());
     1441            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall43.getExpr ()).toRight (_c_14).toRight (_ge_auxcall44.getExpr ()).toRight (_c_13).yield ());
    14421442            break _block2;
    14431443          }
     
    14851485            Result _ge_auxcall46 = new Result (Expr.empty);
    14861486            Expr_Int_To_CPP (_ve_expr, _ge_auxcall46);
    1487             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_64).toRight (_ge_auxcall45.getExpr ()).toRight (_c_14).toRight (_ge_auxcall46.getExpr ()).toRight (_c_13).yield ());
     1487            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_64).toRight (_ge_auxcall45.getExpr ()).toRight (_c_14).toRight (_ge_auxcall46.getExpr ()).toRight (_c_13).yield ());
    14881488            break _block2;
    14891489          }
     
    15121512            Result _ge_auxcall47 = new Result (Expr.empty);
    15131513            refal.plus.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall47);
    1514             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_65).toRight (_ge_auxcall47.getExpr ()).toRight (_c_13).yield ());
     1514            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_65).toRight (_ge_auxcall47.getExpr ()).toRight (_c_13).yield ());
    15151515            break _block2;
    15161516          }
     
    15461546            Result _ge_auxcall49 = new Result (Expr.empty);
    15471547            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall49);
    1548             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_65).toRight (_ge_auxcall48.getExpr ()).toRight (_c_66).toRight (_ge_auxcall49.getExpr ()).toRight (_c_6).yield ());
     1548            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_65).toRight (_ge_auxcall48.getExpr ()).toRight (_c_66).toRight (_ge_auxcall49.getExpr ()).toRight (_c_6).yield ());
    15491549            break _block2;
    15501550          }
     
    15671567            Result _ge_auxcall50 = new Result (Expr.empty);
    15681568            refal.plus.CppMangle.Rfp2Cpp (_vt_var, _ge_auxcall50);
    1569             _ve_cpp__item = new Expr ((Comparable) Expr.concat (_ge_auxcall50.getExpr (), _c_68));
     1569            _ve_cpp__item = new Expr ((Comparable<?>) Expr.concat (_ge_auxcall50.getExpr (), _c_68));
    15701570            break _block2;
    15711571          }
     
    15871587            _vt_label = _v_deref__item20.subexpr ((0 + 1), 1);
    15881588            Result _ge_auxcall51 = new Result (Expr.empty);
    1589             refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_46, _vt_label)), _ge_auxcall51);
    1590             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_70).toRight (_ge_auxcall51.getExpr ()).toRight (_c_13).yield ());
     1589            refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_46, _vt_label)), _ge_auxcall51);
     1590            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_70).toRight (_ge_auxcall51.getExpr ()).toRight (_c_13).yield ());
    15911591            break _block2;
    15921592          }
     
    16081608            _vt_label = _v_deref__item21.subexpr ((0 + 1), 1);
    16091609            Result _ge_auxcall52 = new Result (Expr.empty);
    1610             refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_46, _vt_label)), _ge_auxcall52);
    1611             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_70).toRight (_ge_auxcall52.getExpr ()).toRight (_c_13).yield ());
     1610            refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_46, _vt_label)), _ge_auxcall52);
     1611            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_70).toRight (_ge_auxcall52.getExpr ()).toRight (_c_13).yield ());
    16121612            break _block2;
    16131613          }
     
    16331633            Result _ge_auxcall53 = new Result (Expr.empty);
    16341634            Expr_Ref_To_CPP (_ve_expr, _ge_auxcall53);
    1635             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_72).toRight (_ge_auxcall53.getExpr ()).toRight (_c_6).yield ());
     1635            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_72).toRight (_ge_auxcall53.getExpr ()).toRight (_c_6).yield ());
    16361636            break _block2;
    16371637          }
     
    16591659            Expr _v_deref__deref__item232 = (Expr) _v_deref__item23.at ((0 + 1 + 1));
    16601660            Expr _v_deref__deref__item233 = (Expr) _v_deref__item23.at ((0 + 1 + 1 + 1));
    1661             int _v_len85 = _v_deref__deref__item233.length ();
     1661            int _v_len85 = _v_deref__deref__item232.length ();
    16621662            int _v_len86 = 0;
    16631663            if (_v_len85 < _v_len86)
     
    16651665              break _block2__branch25;
    16661666            }
    1667             int _v_len__comment = (_v_len85 - _v_len86);
    1668             int _v_len87 = _v_deref__deref__item232.length ();
     1667            int _v_len__name4 = (_v_len85 - _v_len86);
     1668            int _v_len87 = _v_deref__deref__item233.length ();
    16691669            int _v_len88 = 0;
    16701670            if (_v_len87 < _v_len88)
     
    16721672              break _block2__branch25;
    16731673            }
    1674             int _v_len__name4 = (_v_len87 - _v_len88);
     1674            int _v_len__comment = (_v_len87 - _v_len88);
    16751675            if (!_c_73.equals (_v_deref__item23, 0))
    16761676            {
     
    17001700            Result _gs_auxcall55 = new Result (Expr.empty);
    17011701            refal.plus.Convert.ToWord (_ge_auxcall54.getExpr (), _gs_auxcall55);
    1702             refal.plus.Table.Bind (Unavailable_Imports, _ve_name, Expr.getConcatenator ().toRight (_c_75).toRight ((Comparable) _gs_auxcall55.getExpr ()).toRight (_c_74).toRight (_ve_expr).yield ());
     1702            refal.plus.Table.Bind (Unavailable_Imports, _ve_name, Expr.getConcatenator ().toRight (_c_75).toRight ((Comparable<?>) _gs_auxcall55.getExpr ()).toRight (_c_74).toRight (_ve_expr).yield ());
    17031703            _ve_cpp__item = Expr.empty;
    17041704            break _block2;
     
    18001800            Result _ge_auxcall59 = new Result (Expr.empty);
    18011801            Const_Expr_To_CPP (_ve_expr, _ge_auxcall59);
    1802             refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable) Expr.concat (_vt_name, (Comparable) _ge_auxcall59.getExpr ())));
     1802            refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable<?>) Expr.concat (_vt_name, (Comparable<?>) _ge_auxcall59.getExpr ())));
    18031803            Result _ge_auxcall60 = new Result (Expr.empty);
    18041804            Namespace_Control (_ve_qualifiers, _ge_auxcall60);
     
    18081808              break _block1__branch1;
    18091809            }
    1810             _ve_cpp__item = Expr.concat (_ge_auxcall60.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_ge_linkage__5).toRight (_c_65).toRight (_ge_auxcall61.getExpr ()).toRight (_c_13).yield ());
     1810            _ve_cpp__item = Expr.concat (_ge_auxcall60.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_ge_linkage__5).toRight (_c_65).toRight (_ge_auxcall61.getExpr ()).toRight (_c_13).yield ());
    18111811            break _block2;
    18121812          }
     
    18781878                  break _block14__branch1;
    18791879                }
    1880                 refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable) Expr.concat (_vt_name, (Comparable) Expr.getConcatenator ().toRight (_c_83).toRight (_ve_n.getExpr ()).toRight (_c_82).yield ())));
     1880                refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable<?>) Expr.concat (_vt_name, (Comparable<?>) Expr.getConcatenator ().toRight (_c_83).toRight (_ve_n.getExpr ()).toRight (_c_82).yield ())));
    18811881                break _block14;
    18821882              }
    18831883              Result _ge_auxcall62 = new Result (Expr.empty);
    18841884              refal.plus.Convert.ToLower (_ve_2, _ge_auxcall62);
    1885               refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable) Expr.concat (_vt_name, (Comparable) Expr.getConcatenator ().toRight (_c_85).toRight (_vs_1).toRight (_ge_auxcall62.getExpr ()).toRight (_c_84).toRight (_ve_n.getExpr ()).toRight (_c_82).yield ())));
     1885              refal.plus.Box.Put (Const_Exprs, new Expr ((Comparable<?>) Expr.concat (_vt_name, (Comparable<?>) Expr.getConcatenator ().toRight (_c_85).toRight (_vs_1).toRight (_ge_auxcall62.getExpr ()).toRight (_c_84).toRight (_ve_n.getExpr ()).toRight (_c_82).yield ())));
    18861886            }
    18871887            Result _ge_auxcall63 = new Result (Expr.empty);
     
    18891889            Result _ge_auxcall64 = new Result (Expr.empty);
    18901890            Name_To_CPP (_c_12, _vt_name, _ge_auxcall64);
    1891             _ve_cpp__item = Expr.concat (_ge_auxcall63.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_ge_linkage__5).toRight (_c_65).toRight (_ge_auxcall64.getExpr ()).toRight (_c_13).yield ());
     1891            _ve_cpp__item = Expr.concat (_ge_auxcall63.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_ge_linkage__5).toRight (_c_65).toRight (_ge_auxcall64.getExpr ()).toRight (_c_13).yield ());
    18921892            break _block2;
    18931893          }
     
    19151915            Result _ge_auxcall66 = new Result (Expr.empty);
    19161916            Name_To_CPP (_c_12, _vt_name, _ge_auxcall66);
    1917             _ve_cpp__item = Expr.concat (_ge_auxcall65.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_c_86).toRight (_ge_auxcall66.getExpr ()).toRight (_c_13).yield ());
     1917            _ve_cpp__item = Expr.concat (_ge_auxcall65.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_86).toRight (_ge_auxcall66.getExpr ()).toRight (_c_13).yield ());
    19181918            break _block2;
    19191919          }
     
    19411941            Result _ge_auxcall68 = new Result (Expr.empty);
    19421942            Name_To_CPP (_c_31, _vt_name, _ge_auxcall68);
    1943             _ve_cpp__item = Expr.concat (_ge_auxcall67.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_c_87).toRight (_ge_auxcall68.getExpr ()).toRight (_c_6).yield ());
     1943            _ve_cpp__item = Expr.concat (_ge_auxcall67.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_87).toRight (_ge_auxcall68.getExpr ()).toRight (_c_6).yield ());
    19441944            break _block2;
    19451945          }
     
    19681968            Result _ge_auxcall70 = new Result (Expr.empty);
    19691969            Name_To_CPP (_c_31, _vt_name, _ge_auxcall70);
    1970             _ve_cpp__item = Expr.concat (_ge_auxcall69.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_c_87).toRight (_ge_auxcall70.getExpr ()).toRight (_c_6).yield ());
     1970            _ve_cpp__item = Expr.concat (_ge_auxcall69.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_87).toRight (_ge_auxcall70.getExpr ()).toRight (_c_6).yield ());
    19711971            break _block2;
    19721972          }
     
    19901990          Expr _v_deref__deref__item29 = (Expr) _v_deref__item29.at ((0 + 1 + 1));
    19911991          Expr _v_deref__deref__item292 = (Expr) _v_deref__item29.at ((0 + 1 + 1 + 1));
    1992           int _v_len99 = _v_deref__deref__item292.length ();
     1992          int _v_len99 = _v_deref__deref__item29.length ();
    19931993          int _v_len100 = 0;
    19941994          if (_v_len99 < _v_len100)
     
    19961996            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    19971997          }
    1998           int _v_len__ress3 = (_v_len99 - _v_len100);
    1999           int _v_len101 = _v_deref__deref__item29.length ();
     1998          int _v_len__exprs = (_v_len99 - _v_len100);
     1999          int _v_len101 = _v_deref__deref__item292.length ();
    20002000          int _v_len102 = 0;
    20012001          if (_v_len101 < _v_len102)
     
    20032003            throw new RefalException ("org.refal.plus.compiler.rfp_asail_cpp", "ASAIL_To_CPP", "Unexpected fail");
    20042004          }
    2005           int _v_len__exprs = (_v_len101 - _v_len102);
     2005          int _v_len__ress3 = (_v_len101 - _v_len102);
    20062006          if (!_v_deref__item29.isSymbolAt (0))
    20072007          {
     
    20572057              Result _ge_auxcall74 = new Result (Expr.empty);
    20582058              Trace_Exit (_ve_full__name, _ve_ress, _ge_auxcall74);
    2059               _ve_cpp__item = Expr.getConcatenator ().toRight ((Comparable) Expr.getConcatenator ().toRight (_c_92).toRight (_ge_auxcall71.getExpr ()).toRight (_c_37).toRight (_ge_auxcall72.getExpr ()).toRight (_c_37).toRight (_ge_auxcall73.getExpr ()).toRight (_c_91).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable) Expr.concat (_ge_auxcall74.getExpr (), _c_93)).toRight (_c_8).yield ()).toRight (_c_94).yield ();
     2059              _ve_cpp__item = Expr.getConcatenator ().toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_92).toRight (_ge_auxcall71.getExpr ()).toRight (_c_37).toRight (_ge_auxcall72.getExpr ()).toRight (_c_37).toRight (_ge_auxcall73.getExpr ()).toRight (_c_91).yield ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_43).toRight ((Comparable<?>) Expr.concat (_ge_auxcall74.getExpr (), _c_93)).toRight (_c_8).yield ()).toRight (_c_94).yield ();
    20602060              break _block15;
    20612061            }
     
    20782078            Result _ge_auxcall77 = new Result (Expr.empty);
    20792079            Args_To_CPP (Expr.empty, _c_33, _ve_ress, _ge_auxcall77);
    2080             _ve_cpp__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_97).toRight (_gs_call__7).toRight (_c_66).toRight (_ge_auxcall75.getExpr ()).toRight (_c_37).toRight (_ge_auxcall76.getExpr ()).toRight (_c_37).toRight (_ge_auxcall77.getExpr ()).toRight (_c_6).yield ());
     2080            _ve_cpp__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_97).toRight (_gs_call__7).toRight (_c_66).toRight (_ge_auxcall75.getExpr ()).toRight (_c_37).toRight (_ge_auxcall76.getExpr ()).toRight (_c_37).toRight (_ge_auxcall77.getExpr ()).toRight (_c_6).yield ());
    20812081          }
    20822082        }
     
    22232223        Expr _v_deref__deref__arg13 = (Expr) _v_deref__arg13.at ((0 + 1 + _v_len__expr3));
    22242224        Expr _v_deref__deref__arg132 = (Expr) _v_deref__arg13.at ((0 + 1 + _v_len__expr3 + 1));
    2225         int _v_len9 = _v_deref__deref__arg132.length ();
     2225        int _v_len9 = _v_deref__deref__arg13.length ();
    22262226        int _v_len10 = 0;
    22272227        if (_v_len9 < _v_len10)
     
    22292229          break _block1__branch3;
    22302230        }
    2231         int _v_len__len = (_v_len9 - _v_len10);
    2232         int _v_len11 = _v_deref__deref__arg13.length ();
     2231        int _v_len__pos2 = (_v_len9 - _v_len10);
     2232        int _v_len11 = _v_deref__deref__arg132.length ();
    22332233        int _v_len12 = 0;
    22342234        if (_v_len11 < _v_len12)
     
    22362236          break _block1__branch3;
    22372237        }
    2238         int _v_len__pos2 = (_v_len11 - _v_len12);
     2238        int _v_len__len = (_v_len11 - _v_len12);
    22392239        if (!_c_106.termEquals (_v_deref__arg13, 0))
    22402240        {
     
    23342334        }
    23352335        Result _v_Rfp2Cpp1 = new Result (Expr.empty);
    2336         refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_c_11, _vt_name)), _v_Rfp2Cpp1);
     2336        refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_c_11, _vt_name)), _v_Rfp2Cpp1);
    23372337        _v_res1.assign (Expr.concat (_ve_prefix, _v_Rfp2Cpp1.getExpr ()));
    23382338        break _block1;
     
    23652365        Expr _vt_name = Expr.empty;
    23662366        _vt_name = _v_deref__arg16.subexpr ((0 + 1 + _v_len__ns), 1);
    2367         refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_var__tag).toRight (_ve_ns).toRight (_vt_name).yield ()), _v_res1);
     2367        refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_vs_var__tag).toRight (_ve_ns).toRight (_vt_name).yield ()), _v_res1);
    23682368        break _block1;
    23692369      }
     
    24322432            break _block2;
    24332433          }
    2434           throw new RefalException (new Expr ((Comparable) Expr.concat (_c_114, _vs_ObjectSymbol)));
     2434          throw new RefalException (new Expr ((Comparable<?>) Expr.concat (_c_114, _vs_ObjectSymbol)));
    24352435        }
    24362436        break _block1;
     
    25992599        Expr _vt_name = Expr.empty;
    26002600        _vt_name = _v_deref__arg16.subexpr ((0 + 1), 1);
    2601         refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) Expr.concat (_vs_var__tag, _vt_name)), _v_res1);
     2601        refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) Expr.concat (_vs_var__tag, _vt_name)), _v_res1);
    26022602        break _block1;
    26032603      }
     
    26432643        Expr _v_deref__deref__deref__arg1 = (Expr) _v_deref__deref__arg1.at ((0 + 1 + 1));
    26442644        Expr _v_deref__deref__deref__arg12 = (Expr) _v_deref__deref__arg1.at ((0 + 1 + 1 + 1));
    2645         int _v_len1 = _v_deref__deref__deref__arg12.length ();
     2645        int _v_len1 = _v_deref__deref__deref__arg1.length ();
    26462646        int _v_len2 = 0;
    26472647        if (_v_len1 < _v_len2)
     
    26492649          break _block1__branch1;
    26502650        }
    2651         int _v_len__ress = (_v_len1 - _v_len2);
    2652         int _v_len3 = _v_deref__deref__deref__arg1.length ();
     2651        int _v_len__exprs = (_v_len1 - _v_len2);
     2652        int _v_len3 = _v_deref__deref__deref__arg12.length ();
    26532653        int _v_len4 = 0;
    26542654        if (_v_len3 < _v_len4)
     
    26562656          break _block1__branch1;
    26572657        }
    2658         int _v_len__exprs = (_v_len3 - _v_len4);
     2658        int _v_len__ress = (_v_len3 - _v_len4);
    26592659        if (!_c_124.termEquals (_v_deref__arg1, 0))
    26602660        {
     
    27432743        Expr _v_deref__deref__arg13 = (Expr) _v_deref__arg13.at ((0 + 1 + _v_len__expr2));
    27442744        Expr _v_deref__deref__arg132 = (Expr) _v_deref__arg13.at ((0 + 1 + _v_len__expr2 + 1));
    2745         int _v_len11 = _v_deref__deref__arg132.length ();
     2745        int _v_len11 = _v_deref__deref__arg13.length ();
    27462746        int _v_len12 = 0;
    27472747        if (_v_len11 < _v_len12)
     
    27492749          break _block1__branch3;
    27502750        }
    2751         int _v_len__len = (_v_len11 - _v_len12);
    2752         int _v_len13 = _v_deref__deref__arg13.length ();
     2751        int _v_len__pos2 = (_v_len11 - _v_len12);
     2752        int _v_len13 = _v_deref__deref__arg132.length ();
    27532753        int _v_len14 = 0;
    27542754        if (_v_len13 < _v_len14)
     
    27562756          break _block1__branch3;
    27572757        }
    2758         int _v_len__pos2 = (_v_len13 - _v_len14);
     2758        int _v_len__len = (_v_len13 - _v_len14);
    27592759        if (!_c_128.termEquals (_v_deref__arg13, 0))
    27602760        {
     
    28232823        Expr _v_deref__deref__arg15 = (Expr) _v_deref__arg15.at ((0 + 1 + _v_len__expr1));
    28242824        Expr _v_deref__deref__arg152 = (Expr) _v_deref__arg15.at ((0 + 1 + _v_len__expr1 + 1));
    2825         int _v_len19 = _v_deref__deref__arg152.length ();
     2825        int _v_len19 = _v_deref__deref__arg15.length ();
    28262826        int _v_len20 = 0;
    28272827        if (_v_len19 < _v_len20)
     
    28292829          break _block1__branch5;
    28302830        }
    2831         int _v_len__pos3 = (_v_len19 - _v_len20);
    2832         int _v_len21 = _v_deref__deref__arg15.length ();
     2831        int _v_len__expr22 = (_v_len19 - _v_len20);
     2832        int _v_len21 = _v_deref__deref__arg152.length ();
    28332833        int _v_len22 = 0;
    28342834        if (_v_len21 < _v_len22)
     
    28362836          break _block1__branch5;
    28372837        }
    2838         int _v_len__expr22 = (_v_len21 - _v_len22);
     2838        int _v_len__pos3 = (_v_len21 - _v_len22);
    28392839        if (!_c_132.termEquals (_v_deref__arg15, 0))
    28402840        {
     
    28792879        Expr _v_deref__deref__arg16 = (Expr) _v_deref__arg16.at ((0 + 1 + _v_len__expr12));
    28802880        Expr _v_deref__deref__arg162 = (Expr) _v_deref__arg16.at ((0 + 1 + _v_len__expr12 + 1));
    2881         int _v_len25 = _v_deref__deref__arg162.length ();
     2881        int _v_len25 = _v_deref__deref__arg16.length ();
    28822882        int _v_len26 = 0;
    28832883        if (_v_len25 < _v_len26)
     
    28852885          break _block1__branch6;
    28862886        }
    2887         int _v_len__pos4 = (_v_len25 - _v_len26);
    2888         int _v_len27 = _v_deref__deref__arg16.length ();
     2887        int _v_len__expr23 = (_v_len25 - _v_len26);
     2888        int _v_len27 = _v_deref__deref__arg162.length ();
    28892889        int _v_len28 = 0;
    28902890        if (_v_len27 < _v_len28)
     
    28922892          break _block1__branch6;
    28932893        }
    2894         int _v_len__expr23 = (_v_len27 - _v_len28);
     2894        int _v_len__pos4 = (_v_len27 - _v_len28);
    28952895        if (!_c_134.termEquals (_v_deref__arg16, 0))
    28962896        {
     
    29722972        _block2: {
    29732973          _block2__branch1: {
    2974             int _v_len5 = _ve_rest.length ();
     2974            int _v_len5 = _ve_arg.length ();
    29752975            int _v_len6 = 0;
    29762976            if (_v_len5 < (_v_len6 + 1))
     
    29782978              break _block2__branch1;
    29792979            }
    2980             int _v_len___dollar_tmp_m_368_m_28 = (_v_len5 - _v_len6);
    2981             int _v_len7 = _ve_arg.length ();
     2980            int _v_len___dollar_tmp_m_368_m_16 = (_v_len5 - _v_len6);
     2981            int _v_len7 = _ve_rest.length ();
    29822982            int _v_len8 = 0;
    29832983            if (_v_len7 < (_v_len8 + 1))
     
    29852985              break _block2__branch1;
    29862986            }
    2987             int _v_len___dollar_tmp_m_368_m_16 = (_v_len7 - _v_len8);
     2987            int _v_len___dollar_tmp_m_368_m_28 = (_v_len7 - _v_len8);
    29882988            Expr _vv__dollar_tmp_m_368_m_16 = Expr.empty;
    29892989            _vv__dollar_tmp_m_368_m_16 = _ve_arg.subexpr (0, _v_len___dollar_tmp_m_368_m_16);
     
    32013201        Result _ge_auxcall1 = new Result (Expr.empty);
    32023202        Symbol_To_CPP (_vs_sym, _ge_auxcall1);
    3203         Const_Expr_Aux (Expr.concat ((Comparable) Expr.concat (_ve_accum, _ge_auxcall1.getExpr ()), _ve_rest), _v_res1);
     3203        Const_Expr_Aux (Expr.concat ((Comparable<?>) Expr.concat (_ve_accum, _ge_auxcall1.getExpr ()), _ve_rest), _v_res1);
    32043204        break _block1;
    32053205      }
     
    35133513          break _block1__branch1;
    35143514        }
    3515         Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
     3515        Expr _v_compose1 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
    35163516        if (_v_compose1.isSymbolAt (0))
    35173517        {
     
    35403540          break _block1__branch2;
    35413541        }
    3542         Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
     3542        Expr _v_compose2 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
    35433543        if (!_c_163.equals (_v_compose2, 0))
    35443544        {
     
    35533553          break _block1__branch3;
    35543554        }
    3555         Expr _v_compose3 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
     3555        Expr _v_compose3 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
    35563556        if (_v_compose3.isSymbolAt ((0 + 1 + 1)))
    35573557        {
     
    35723572        Expr _ve_arg = Expr.empty;
    35733573        _ve_arg = _v_deref__compose3.subexpr (0, _v_len__arg);
    3574         refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) _ve_arg), _v_res1);
     3574        refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) _ve_arg), _v_res1);
    35753575        break _block1;
    35763576      }
     
    35803580          break _block1__branch4;
    35813581        }
    3582         Expr _v_compose4 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
     3582        Expr _v_compose4 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
    35833583        if (_v_compose4.isSymbolAt (0))
    35843584        {
     
    36073607          break _block1__branch5;
    36083608        }
    3609         Expr _v_compose5 = Expr.getConcatenator ().toRight ((Comparable) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
     3609        Expr _v_compose5 = Expr.getConcatenator ().toRight ((Comparable<?>) _ge_arg1).toRight (_gs_arg2).toRight (_ge_arg3).yield ();
    36103610        if (_v_compose5.isSymbolAt (0))
    36113611        {
     
    36183618        Expr _v_deref__compose5 = (Expr) _v_compose5.at (0);
    36193619        Expr _v_deref__compose52 = (Expr) _v_compose5.at ((0 + 1 + 1));
    3620         int _v_len7 = _v_deref__compose52.length ();
     3620        int _v_len7 = _v_deref__compose5.length ();
    36213621        int _v_len8 = 0;
    36223622        if (_v_len7 < _v_len8)
     
    36243624          break _block1__branch5;
    36253625        }
    3626         int _v_len__arg2 = (_v_len7 - _v_len8);
    3627         int _v_len9 = _v_deref__compose5.length ();
     3626        int _v_len__prefix3 = (_v_len7 - _v_len8);
     3627        int _v_len9 = _v_deref__compose52.length ();
    36283628        int _v_len10 = 0;
    36293629        if (_v_len9 < _v_len10)
     
    36313631          break _block1__branch5;
    36323632        }
    3633         int _v_len__prefix3 = (_v_len9 - _v_len10);
     3633        int _v_len__arg2 = (_v_len9 - _v_len10);
    36343634        if (!_c_90.termEquals (_v_compose5, (0 + 1)))
    36353635        {
     
    36543654          _block2: {
    36553655            _block2__branch1: {
    3656               Expr _v_compose6 = Expr.concat ((Comparable) _ge_arg1, _gs_arg2);
     3656              Expr _v_compose6 = Expr.concat ((Comparable<?>) _ge_arg1, _gs_arg2);
    36573657              if (!_c_90.termEquals (_v_compose6, (0 + 1)))
    36583658              {
     
    36653665            }
    36663666            _block2__branch2: {
    3667               Expr _v_compose7 = Expr.concat ((Comparable) _ge_arg1, _gs_arg2);
     3667              Expr _v_compose7 = Expr.concat ((Comparable<?>) _ge_arg1, _gs_arg2);
    36683668              if (!_c_163.equals (_v_compose7, 0))
    36693669              {
     
    36743674            }
    36753675            _block2__branch3: {
    3676               Expr _v_compose8 = Expr.concat ((Comparable) _ge_arg1, _gs_arg2);
     3676              Expr _v_compose8 = Expr.concat ((Comparable<?>) _ge_arg1, _gs_arg2);
    36773677              if (_v_compose8.isSymbolAt (0))
    36783678              {
     
    37033703            }
    37043704            int _v_len___dollar_tmp_m_474_m_8 = (_v_len13 - _v_len14);
    3705             Expr _v_compose9 = Expr.concat ((Comparable) _ge_arg1, _gs_arg2);
     3705            Expr _v_compose9 = Expr.concat ((Comparable<?>) _ge_arg1, _gs_arg2);
    37063706            Expr _ve__dollar_tmp_m_474_m_8 = Expr.empty;
    37073707            _ve__dollar_tmp_m_474_m_8 = _v_compose9.subexpr (0, _v_len___dollar_tmp_m_474_m_8);
     
    37573757            }
    37583758            Result _ge_auxcall1 = new Result (Expr.empty);
    3759             refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable) _ve_arg), _ge_auxcall1);
     3759            refal.plus.CppMangle.Rfp2Cpp (new Expr ((Comparable<?>) _ve_arg), _ge_auxcall1);
    37603760            _ge_arg3__2 = _ve_rest;
    37613761            _ve_cpp__args = Expr.getConcatenator ().toRight (_ve_cpp__args).toRight (_ge_auxcall1.getExpr ()).toRight (_ve_comma).yield ();
     
    38543854        Expr _ve_cont = Expr.empty;
    38553855        _ve_cont = _ve_name.subexpr ((0 + 1 + 1), _v_len__cont2);
    3856         refal.plus.Table.Bind (Decls, Expr.concat (_vs_decl__type, (Comparable) Expr.concat (_c_167, _ve_cont)), Expr.empty);
     3856        refal.plus.Table.Bind (Decls, Expr.concat (_vs_decl__type, (Comparable<?>) Expr.concat (_c_167, _ve_cont)), Expr.empty);
    38573857        QName_To_Cpp (Expr.concat (_c_167, _ve_cont), _v_res1);
    38583858        break _block1;
     
    38603860      Result _ve_namespace = new Result (Expr.empty);
    38613861      refal.plus.Box.Get (Current_Namespace, _ve_namespace);
    3862       refal.plus.Table.Bind (Decls, Expr.concat (_vs_decl__type, (Comparable) _ve_name), Expr.empty);
     3862      refal.plus.Table.Bind (Decls, Expr.concat (_vs_decl__type, (Comparable<?>) _ve_name), Expr.empty);
    38633863      _block2: {
    38643864        _block2__branch1: {
     
    38933893  static  void Open_Namespace (Expr _ve_name, Result _v_res1) throws RefalException
    38943894  {
    3895     _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_169).toRight (_ve_name).toRight (_c_168).yield ()));
     3895    _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_169).toRight (_ve_name).toRight (_c_168).yield ()));
    38963896  }
    38973897
     
    39763976          break _iter1;
    39773977        }
    3978         _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_173).toRight (_ve_name).toRight (_c_172).yield (), _ve_pr__args));
     3978        _v_res1.assign (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_173).toRight (_ve_name).toRight (_c_172).yield (), _ve_pr__args));
    39793979        break _exit__iter1;
    39803980      }
     
    40224022      _ge_args__0 = _ve_rest;
    40234023      _vs_n = _gs_auxcall1.getExpr ();
    4024       _ve_pr__args = Expr.concat (_ve_pr__args, (Comparable) Expr.getConcatenator ().toRight (_c_177).toRight (_ve_num).toRight (_c_66).toRight (_ge_auxcall2.getExpr ()).toRight (_c_176).yield ());
     4024      _ve_pr__args = Expr.concat (_ve_pr__args, (Comparable<?>) Expr.getConcatenator ().toRight (_c_177).toRight (_ve_num).toRight (_c_66).toRight (_ge_auxcall2.getExpr ()).toRight (_c_176).yield ());
    40254025    }
    40264026  }
     
    40394039          break _iter1;
    40404040        }
    4041         _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_178).toRight (_ve_name).toRight (_c_172).yield (), _ve_pr__args));
     4041        _v_res1.assign (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_178).toRight (_ve_name).toRight (_c_172).yield (), _ve_pr__args));
    40424042        break _exit__iter1;
    40434043      }
     
    40854085      _ge_args__0 = _ve_rest;
    40864086      _vs_n = _gs_auxcall1.getExpr ();
    4087       _ve_pr__args = Expr.concat (_ve_pr__args, (Comparable) Expr.getConcatenator ().toRight (_c_180).toRight (_ve_num).toRight (_c_66).toRight (_ge_auxcall2.getExpr ()).toRight (_c_179).yield ());
     4087      _ve_pr__args = Expr.concat (_ve_pr__args, (Comparable<?>) Expr.getConcatenator ().toRight (_c_180).toRight (_ve_num).toRight (_c_66).toRight (_ge_auxcall2.getExpr ()).toRight (_c_179).yield ());
    40884088    }
    40894089  }
     
    40924092  static  void Trace_Fail (Expr _ve_name, Result _v_res1) throws RefalException
    40934093  {
    4094     _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_181).toRight (_ve_name).toRight (_c_172).yield ()));
     4094    _v_res1.assign (new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_181).toRight (_ve_name).toRight (_c_172).yield ()));
    40954095  }
    40964096
  • to-imperative/trunk/java/compiler/org/refal/plus/compiler/rfp_asail_java.java

    r3370 r3428  
    3939  static  final Expr _c_10 = Expr.fromSequence (" (new Result ());");
    4040  static  final Expr _c_11 = Expr.fromSequence ("try {");
    41   static  final Expr _c_231 = Expr.fromSequence ("java.lang.System.out.println (\"$error: \" + e);");
    42   static  final Expr _c_12 = Expr.getConcatenator (30).toRight (Expr.fromSequence ("} catch (RefalException e) {")).toRight ((Comparable) Expr.concat ((Comparable) _c_231, (Comparable) Expr.fromSequence ("java.lang.System.exit (100);"))).toRight (Expr.fromSequence ("}")).yield ();
     41  static  final Expr _c_210 = Expr.fromSequence ("java.lang.System.out.println (\"$error: \" + e);");
     42  static  final Expr _c_12 = Expr.getConcatenator (30).toRight (Expr.fromSequence ("} catch (RefalException e) {")).toRight ((Comparable<?>) Expr.concat ((Comparable<?>) _c_210, (Comparable<?>) Expr.fromSequence ("java.lang.System.exit (100);"))).toRight (Expr.fromSequence ("}")).yield ();
    4343  static  final Expr _c_13 = Expr.fromSequence ("public void run () {");
    4444  static  final Expr _c_14 = _c_12.subexpr (0, 1);
     
    4747  static  final Expr _c_17 = Expr.fromSequence ("new Thread(");
    4848  static  final Expr _c_18 = Expr.fromSequence ("public static void main (final java.lang.String[] args) {");
    49   static  final Expr _c_19 = new Expr ((Comparable) Expr.empty);
    50   static  final Expr _c_20 = _c_11.subexpr (3, 2);
     49  static  final Expr _c_19 = new Expr ((Comparable<?>) Expr.empty);
     50  static  final Expr _c_20 = _c_16.subexpr (14, 2);
    5151  static  final Expr _c_21 = Expr.fromSequence ("public class ");
    52   static  final Expr _c_22 = new Expr ((Comparable) Expr.fromSequence ("import org.refal.plus.*;"));
    53   static  final Expr _c_23 = _c_231.subexpr (30, 1);
     52  static  final Expr _c_22 = new Expr ((Comparable<?>) Expr.fromSequence ("import org.refal.plus.*;"));
     53  static  final Expr _c_23 = _c_8.subexpr (0, 1);
    5454  static  final Expr _c_24 = Expr.fromSequence ("\\\"");
    5555  static  final Expr _c_26 = Expr.fromSequence ("\\'");
     
    5858  static  final Expr _c_28 = new Expr (Symbol.newWord ("NATIVE"));
    5959  static  final Expr _c_29 = new Expr (Symbol.newWord ("FUNC"));
    60   static  final Expr _c_30 = _c_13.subexpr (7, 4);
     60  static  final Expr _c_30 = _c_18.subexpr (14, 4);
    6161  static  final Expr _c_31 = new Expr (Symbol.newWord ("FUNC?"));
    6262  static  final Expr _c_160 = Expr.fromSequence ("public boolean eval (Expr arg, Result res) throws RefalException {");
    6363  static  final Expr _c_32 = _c_160.subexpr (7, 7);
    64   static  final Expr _c_232 = Expr.fromSequence ("return true;");
    65   static  final Expr _c_33 = new Expr ((Comparable) _c_232);
     64  static  final Expr _c_33 = new Expr ((Comparable<?>) Expr.fromSequence ("return true;"));
    6665  static  final Expr _c_61 = Expr.fromSequence ("\", \"This is for avoiding 'Unreachable code' errors\");");
    6766  static  final Expr _c_34 = _c_61.subexpr (50, 2);
     
    7069  static  final Expr _c_37 = new Expr (Symbol.newWord ("Expr"));
    7170  static  final Expr _c_38 = _c_160.subexpr (41, 23);
    72   static  final Expr _c_39 = _c_13.subexpr (15, 2);
     71  static  final Expr _c_39 = _c_10.subexpr (0, 2);
    7372  static  final Expr _c_40 = _c_39.subexpr (0, 1);
    7473  static  final Expr _c_41 = _c_18.subexpr (7, 7);
    75   static  final Expr _c_42 = _c_11.subexpr (4, 1);
     74  static  final Expr _c_42 = _c_20.subexpr (1, 1);
    7675  static  final Expr _c_43 = new Expr (Symbol.newWord ("TRACE"));
    7776  static  final Expr _c_44 = new Expr (Symbol.newWord ("IF-INT-CMP"));
    78   static  final Expr _c_45 = _c_34.subexpr (1, 1);
     77  static  final Expr _c_45 = _c_10.subexpr (14, 1);
    7978  static  final Expr _c_64 = Expr.fromSequence ("if (false)");
    8079  static  final Expr _c_46 = _c_64.subexpr (0, 4);
     
    8382  static  final Expr _c_49 = new Expr (Symbol.newWord ("FOR"));
    8483  static  final Expr _c_50 = new Expr (Symbol.newWord ("LABEL"));
    85   static  final Expr _c_51 = _c_231.subexpr (37, 2);
     84  static  final Expr _c_51 = _c_210.subexpr (37, 2);
    8685  static  final Expr _c_52 = new Expr (Symbol.newWord ("INC-ITER"));
    8786  static  final Expr _c_53 = new Expr (Symbol.newWord ("DEC-ITER"));
    8887  static  final Expr _c_54 = Expr.fromSequence (".getLeft();");
    89   static  final Expr _c_233 = Expr.fromSequence ("Expr err = error.getExpr ();");
    90   static  final Expr _c_55 = _c_233.subexpr (8, 3);
    91   static  final Expr _c_56 = _c_233.subexpr (0, 5);
     88  static  final Expr _c_211 = Expr.fromSequence ("Expr err = error.getExpr ();");
     89  static  final Expr _c_55 = _c_211.subexpr (8, 3);
     90  static  final Expr _c_56 = _c_211.subexpr (0, 5);
    9291  static  final Expr _c_57 = Expr.fromSequence (".getRight();");
    9392  static  final Expr _c_58 = Expr.fromSequence ("for ( ; ; ");
     
    9695  static  final Expr _c_62 = _c_61.subexpr (0, 4);
    9796  static  final Expr _c_63 = Expr.fromSequence ("throw new RefalException (\"");
    98   static  final Expr _c_65 = new Expr ((Comparable) _c_11.subexpr (0, 3));
     97  static  final Expr _c_65 = new Expr ((Comparable<?>) _c_11.subexpr (0, 3));
    9998  static  final Expr _c_66 = new Expr (Symbol.newWord ("CATCH-ERROR"));
    100   static  final Expr _c_67 = new Expr ((Comparable) _c_233);
     99  static  final Expr _c_67 = new Expr ((Comparable<?>) _c_211);
    101100  static  final Expr _c_68 = Expr.fromSequence ("catch (RefalException error) {");
    102101  static  final Expr _c_69 = new Expr (Symbol.newWord ("RETFAIL"));
    103   static  final Expr _c_234 = Expr.fromSequence ("return false;");
    104   static  final Expr _c_104 = Expr.getConcatenator (5).toRight (Expr.fromSequence (") {")).toRight ((Comparable) _c_234).toRight (Expr.fromSequence ("}")).yield ();
     102  static  final Expr _c_212 = Expr.fromSequence ("return false;");
     103  static  final Expr _c_104 = Expr.getConcatenator (5).toRight (Expr.fromSequence (") {")).toRight ((Comparable<?>) _c_212).toRight (Expr.fromSequence ("}")).yield ();
    105104  static  final Expr _c_70 = _c_104.subexpr (3, 1);
    106105  static  final Expr _c_71 = new Expr (Symbol.newWord ("FATAL"));
     
    108107  static  final Expr _c_73 = new Expr (Symbol.newWord ("LSPLIT"));
    109108  static  final Expr _c_74 = Expr.fromSequence ("_va_");
    110   static  final Expr _c_75 = _c_54.subexpr (9, 2);
     109  static  final Expr _c_75 = _c_10.subexpr (15, 2);
    111110  static  final Expr _c_76 = Expr.fromSequence (".leftSplit(");
    112111  static  final Expr _c_77 = Expr.fromSequence ("Expr.SplitIterator ");
     
    114113  static  final Expr _c_79 = Expr.fromSequence (".rightSplit(");
    115114  static  final Expr _c_80 = new Expr (Symbol.newWord ("DECL"));
    116   static  final Expr _c_216 = Expr.fromSequence ("for (int i = 0; i < tmp_");
    117   static  final Expr _c_203 = _c_216.subexpr (0, 20);
    118   static  final Expr _c_81 = _c_203.subexpr (5, 4);
     115  static  final Expr _c_81 = Expr.fromSequence ("int ");
    119116  static  final Expr _c_82 = new Expr (Symbol.newWord ("ASSIGN"));
    120117  static  final Expr _c_107 = Expr.fromSequence (" = new Result ();");
    121118  static  final Expr _c_83 = _c_107.subexpr (0, 15);
    122   static  final Expr _c_84 = _c_83.subexpr (7, 7);
     119  static  final Expr _c_84 = _c_10.subexpr (6, 7);
    123120  static  final Expr _c_85 = Expr.fromSequence (".assign (");
    124121  static  final Expr _c_86 = new Expr (Symbol.newWord ("DROP"));
     
    135132  static  final Expr _c_97 = new Expr (Symbol.newWord ("OBJ"));
    136133  static  final Expr _c_98 = Expr.fromSequence ("\"));");
    137   static  final Expr _c_99 = _c_63.subexpr (24, 3);
     134  static  final Expr _c_99 = _c_9.subexpr (20, 3);
    138135  static  final Expr _c_100 = Expr.fromSequence (" = new Expr (Symbol.new");
    139136  static  final Expr _c_101 = new Expr (Symbol.newWord ("DECL-OBJ"));
     
    141138  static  final Expr _c_103 = new Expr (Symbol.newWord ("TAILCALL?"));
    142139  static  final Expr _c_105 = Expr.fromSequence ("if (!");
    143   static  final Expr _c_106 = _c_233.subexpr (16, 12);
     140  static  final Expr _c_106 = _c_211.subexpr (16, 12);
    144141  static  final Expr _c_108 = Expr.fromSequence ("Expr.empty");
    145142  static  final Expr _c_109 = new Expr (Symbol.newWord ("PAREN"));
    146   static  final Expr _c_110 = Expr.fromSequence ("new Expr ((Comparable) ");
     143  static  final Expr _c_110 = Expr.fromSequence ("new Expr ((Comparable<?>) ");
    147144  static  final Expr _c_111 = _c_62.subexpr (1, 2);
    148145  static  final Expr _c_112 = Expr.fromSequence ("Expr.concat (");
     
    159156  static  final Expr _c_115 = Expr.fromSequence (".yield ()");
    160157  static  final Expr _c_116 = Expr.fromSequence ("Expr.getConcatenator ()");
    161   static  final Expr _c_117 = _c_110.subexpr (10, 13);
     158  static  final Expr _c_117 = _c_110.subexpr (10, 16);
    162159  static  final Expr _c_118 = new Expr (Symbol.newWord ("DEREF"));
    163160  static  final Expr _c_119 = Expr.fromSequence (".at (");
     
    167164  static  final Expr _c_123 = new Expr (Symbol.newWord ("REF"));
    168165  static  final Expr _c_124 = new Expr (Symbol.newWord ("ERROR-EXPR"));
    169   static  final Expr _c_125 = _c_233.subexpr (5, 3);
     166  static  final Expr _c_125 = _c_61.subexpr (44, 3);
    170167  static  final Expr _c_126 = new Expr (Symbol.newWord ("Illegal int-symbol: "));
    171168  static  final Expr _c_127 = new Expr (Symbol.newWord ("LENGTH"));
     
    199196  static  final Expr _c_150 = Expr.fromSequence (".next ()");
    200197  static  final Expr _c_151 = Expr.fromSequence (".prev ()");
    201   static  final Expr _c_152 = _c_117.subexpr (0, 12);
     198  static  final Expr _c_152 = _c_117.subexpr (0, 15);
    202199  static  final Expr _c_161 = Expr.fromSequence ("new Func () {");
    203200  static  final Expr _c_153 = _c_161.subexpr (0, 8);
     
    207204  static  final Expr _c_157 = Expr.fromSequence ("Expr.fromSequence (\"");
    208205  static  final Expr _c_158 = Expr.fromSequence (" (arg, res);");
    209   static  final Expr _c_159 = _c_232.subexpr (0, 7);
     206  static  final Expr _c_159 = _c_212.subexpr (0, 7);
    210207  static  final Expr _c_162 = Expr.fromSequence ("Symbol.newInt (\"");
    211208  static  final Expr _c_163 = Expr.fromSequence ("Symbol.newWord (\"");
     
    220217  static  final Expr _c_172 = _c_106.subexpr (0, 11);
    221218  static  final Expr _c_173 = new Expr (Symbol.newWord ("EXPORT"));
    222   static  final Expr _c_174 = _c_13.subexpr (0, 6);
     219  static  final Expr _c_174 = _c_160.subexpr (0, 6);
    223220  static  final Expr _c_175 = new Expr (Symbol.newInt ("1"));
    224   static  final Expr _c_176 = new Expr (Symbol.newWord ("boolean"));
    225   static  final Expr _c_177 = Expr.fromSequence ("java.lang.Boolean.parseBoolean((java.lang.String) ");
     221  static  final Expr _c_176 = new Expr (Symbol.newWord ("SVAR"));
     222  static  final Expr _c_177 = new Expr (Symbol.newWord ("boolean"));
    226223  static  final Expr _c_178 = new Expr (Symbol.newWord ("char"));
    227   static  final Expr _c_179 = Expr.fromSequence (").charValue()");
    228   static  final Expr _c_180 = Expr.fromSequence ("((java.lang.Character) ");
    229   static  final Expr _c_181 = new Expr (Symbol.newWord ("byte"));
    230   static  final Expr _c_182 = Expr.fromSequence (").byteValue()");
    231   static  final Expr _c_183 = Expr.fromSequence ("((java.math.BigInteger) ");
    232   static  final Expr _c_184 = new Expr (Symbol.newWord ("short"));
    233   static  final Expr _c_185 = Expr.fromSequence (").shortValue()");
    234   static  final Expr _c_186 = new Expr (Symbol.newWord ("int"));
    235   static  final Expr _c_187 = Expr.fromSequence (").intValue()");
    236   static  final Expr _c_188 = new Expr (Symbol.newWord ("long"));
    237   static  final Expr _c_189 = Expr.fromSequence (").longValue()");
    238   static  final Expr _c_190 = Expr.fromSequence (").object : ");
    239   static  final Expr _c_191 = Expr.fromSequence (" instanceof org.refal.plus.Reference) ? ((org.refal.plus.Reference) ");
    240   static  final Expr _c_192 = Expr.fromSequence (") ((");
    241   static  final Expr _c_193 = new Expr (Symbol.newWord ("SVAR"));
    242   static  final Expr _c_194 = Expr.fromSequence (".at(0)");
    243   static  final Expr _c_195 = new Expr (Symbol.newWord ("EVAR"));
    244   static  final Expr _c_196 = _c_18.subexpr (47, 2);
    245   static  final Expr _c_197 = Expr.fromSequence (".at(i)");
    246   static  final Expr _c_198 = Expr.fromSequence (".length()];");
    247   static  final Expr _c_199 = _c_196.subexpr (0, 1);
    248   static  final Expr _c_200 = _c_83.subexpr (0, 7);
    249   static  final Expr _c_201 = Expr.fromSequence ("[i] = ");
    250   static  final Expr _c_202 = Expr.fromSequence (".length; i++)");
    251   static  final Expr _c_204 = Expr.fromSequence ("java.lang.String.valueOf(");
    252   static  final Expr _c_205 = Expr.fromSequence ("java.lang.Character.valueOf(");
    253   static  final Expr _c_206 = Expr.fromSequence ("java.math.BigInteger.valueOf(");
    254   static  final Expr _c_207 = Expr.fromSequence (">(");
    255   static  final Expr _c_208 = Expr.fromSequence (") : new org.refal.plus.Reference<");
    256   static  final Expr _c_209 = Expr.fromSequence (" instanceof java.lang.Comparable) ? ((java.lang.Comparable) ");
    257   static  final Expr _c_217 = Expr.fromSequence (".assign(tmp_");
    258   static  final Expr _c_210 = _c_217.subexpr (0, 8);
    259   static  final Expr _c_211 = _c_201.subexpr (0, 3);
    260   static  final Expr _c_212 = Expr.fromSequence (".length];");
    261   static  final Expr _c_213 = Expr.fromSequence (" = new java.lang.Comparable[");
    262   static  final Expr _c_214 = Expr.fromSequence ("java.lang.Comparable[] tmp_");
    263   static  final Expr _c_215 = _c_214.subexpr (23, 4);
    264   static  final Expr _c_218 = _c_158.subexpr (2, 3);
    265   static  final Expr _c_219 = _c_158.subexpr (7, 3);
    266   static  final Expr _c_220 = Expr.fromSequence ("convArg");
    267   static  final Expr _c_221 = Expr.fromSequence ("convRes");
    268   static  final Expr _c_222 = new Expr (Symbol.newWord (""));
    269   static  final Expr _c_223 = _c_200.subexpr (3, 4);
    270   static  final Expr _c_224 = _c_220.subexpr (4, 1);
    271   static  final Expr _c_225 = Expr.fromSequence ("\", e.toString());");
    272   static  final Expr _c_226 = Expr.fromSequence ("throw new org.refal.plus.RefalException(\"");
    273   static  final Expr _c_227 = Expr.fromSequence ("} catch (java.lang.Exception e) {");
    274   static  final Expr _c_228 = _c_111.subexpr (0, 1);
    275   static  final Expr _c_229 = Expr.getConcatenator (3).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Unexpected fail")).yield ();
    276   static  final Expr _c_230 = Expr.fromSequence (".toRight (");
     224  static  final Expr _c_179 = new Expr (Symbol.newWord ("byte"));
     225  static  final Expr _c_180 = new Expr (Symbol.newWord ("short"));
     226  static  final Expr _c_181 = new Expr (Symbol.newWord ("int"));
     227  static  final Expr _c_182 = new Expr (Symbol.newWord ("long"));
     228  static  final Expr _c_186 = Expr.fromSequence (".at(0)))");
     229  static  final Expr _c_183 = _c_186.subexpr (0, 7);
     230  static  final Expr _c_187 = Expr.fromSequence (") Native.objectValue(");
     231  static  final Expr _c_184 = _c_187.subexpr (15, 6);
     232  static  final Expr _c_185 = _c_187.subexpr (2, 7);
     233  static  final Expr _c_188 = _c_110.subexpr (9, 2);
     234  static  final Expr _c_189 = new Expr (Symbol.newWord ("EVAR"));
     235  static  final Expr _c_190 = _c_18.subexpr (47, 2);
     236  static  final Expr _c_195 = Expr.fromSequence (") Native.objectArrayValue(");
     237  static  final Expr _c_191 = _c_195.subexpr (15, 11);
     238  static  final Expr _c_192 = Expr.fromSequence (".length()]))");
     239  static  final Expr _c_193 = _c_190.subexpr (0, 1);
     240  static  final Expr _c_194 = Expr.fromSequence (", new ");
     241  static  final Expr _c_196 = Expr.fromSequence ("Native.sValueOf(");
     242  static  final Expr _c_197 = Expr.fromSequence ("Native.eValueOf(");
     243  static  final Expr _c_198 = _c_158.subexpr (2, 3);
     244  static  final Expr _c_199 = _c_158.subexpr (7, 3);
     245  static  final Expr _c_200 = new Expr (Symbol.newWord (""));
     246  static  final Expr _c_201 = _c_10.subexpr (2, 4);
     247  static  final Expr _c_202 = Expr.fromSequence (".assign(");
     248  static  final Expr _c_203 = Expr.fromSequence ("\", e.toString());");
     249  static  final Expr _c_204 = Expr.fromSequence ("throw new org.refal.plus.RefalException(\"");
     250  static  final Expr _c_205 = Expr.fromSequence ("} catch (java.lang.Exception e) {");
     251  static  final Expr _c_206 = _c_160.subexpr (41, 25);
     252  static  final Expr _c_207 = _c_18.subexpr (13, 6);
     253  static  final Expr _c_208 = Expr.getConcatenator (3).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Apply")).toRight (Symbol.newWord ("Unexpected fail")).yield ();
     254  static  final Expr _c_209 = Expr.fromSequence (".toRight (");
    277255
    278256  @RefalFormat("$func RFP_ASAIL_To_Java t = (e) (e);")
     
    336314        break _block2;
    337315      }
    338       refal.plus.Box.Store (Entry, new Expr ((Comparable) Expr.concat (_ve_moduleName, _c_4)));
     316      refal.plus.Box.Store (Entry, new Expr ((Comparable<?>) Expr.concat (_ve_moduleName, _c_4)));
    339317    }
    340318    refal.plus.Box.Store (Entry_Name, Expr.empty);
     
    349327        Result _v_ASAIL__To__Java1 = new Result (Expr.empty);
    350328        ASAIL_To_Java (_ve_asail, _v_ASAIL__To__Java1);
    351         int _v_len5 = _v_len__moduleName;
    352         int _v_len6 = 1;
    353         if (_v_len5 < _v_len6)
     329        int _v_len5 = _v_ASAIL__To__Java1.getExpr ().length ();
     330        int _v_len6 = 0;
     331        if (_v_len5 < (_v_len6 + 1))
    354332        {
    355333          break _block3__branch1;
    356334        }
    357         int _v_len__package = (_v_len5 - _v_len6);
    358         int _v_len7 = _v_ASAIL__To__Java1.getExpr ().length ();
    359         int _v_len8 = 0;
    360         if (_v_len7 < (_v_len8 + 1))
     335        int _v_len__java__2 = (_v_len5 - _v_len6);
     336        int _v_len7 = _v_len__moduleName;
     337        int _v_len8 = 1;
     338        if (_v_len7 < _v_len8)
    361339        {
    362340          break _block3__branch1;
    363341        }
    364         int _v_len__java__2 = (_v_len7 - _v_len8);
     342        int _v_len__package = (_v_len7 - _v_len8);
    365343        if (!_ve_moduleName.isSymbolAt ((0 + _v_len__package)))
    366344        {
     
    387365            Result _ge_auxcall4 = new Result (Expr.empty);
    388366            refal.plus.List.Intersperse (_c_5, _ve_package, _ge_auxcall4);
    389             _ge_package__3 = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_7).toRight (_ge_auxcall4.getExpr ()).toRight (_c_6).yield ());
     367            _ge_package__3 = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_7).toRight (_ge_auxcall4.getExpr ()).toRight (_c_6).yield ());
    390368            break _block4;
    391369          }
     
    421399            Expr _vs_name = Expr.empty;
    422400            _vs_name = _v_deref__Get1.subexpr ((0 + _v_len___dollar_tmp_m_86_m_31), 1);
    423             _ve_entry = Expr.concat (_c_19, (Comparable) Expr.getConcatenator ().toRight (_c_18).toRight ((Comparable) new Expr ((Comparable) Expr.concat (_c_17, (Comparable) Expr.getConcatenator ().toRight (_c_16).toRight ((Comparable) Expr.concat ((Comparable) Expr.concat (_c_13, (Comparable) Expr.getConcatenator ().toRight ((Comparable) Expr.getConcatenator ().toRight (_c_9).toRight (_vs_refal__mod__name.getExpr ()).toRight (_c_8).yield ()).toRight ((Comparable) Expr.concat (_c_11, (Comparable) Expr.concat (_vs_name, _c_10))).toRight (_c_12).yield ()), _c_14)).toRight (_c_15).yield ()))).toRight (_c_14).yield ());
     401            _ve_entry = Expr.concat (_c_19, (Comparable<?>) Expr.getConcatenator ().toRight (_c_18).toRight ((Comparable<?>) new Expr ((Comparable<?>) Expr.concat (_c_17, (Comparable<?>) Expr.getConcatenator ().toRight (_c_16).toRight ((Comparable<?>) Expr.concat ((Comparable<?>) Expr.concat (_c_13, (Comparable<?>) Expr.getConcatenator ().toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_9).toRight (_vs_refal__mod__name.getExpr ()).toRight (_c_8).yield ()).toRight ((Comparable<?>) Expr.concat (_c_11, (Comparable<?>) Expr.concat (_vs_name, _c_10))).toRight (_c_12).yield ()), _c_14)).toRight (_c_15).yield ()))).toRight (_c_14).yield ());
    424402            break _block5;
    425403          }
    426404          _ve_entry = Expr.empty;
    427405        }
    428         _ve_java = Expr.getConcatenator ().toRight (_ge_package__3).toRight (_c_22).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_21).toRight (_vs_class).toRight (_c_20).toRight ((Comparable) Expr.concat (_gv_java__2, _ve_entry)).toRight (_c_14).yield ()).yield ();
     406        _ve_java = Expr.getConcatenator ().toRight (_ge_package__3).toRight (_c_22).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_21).toRight (_vs_class).toRight (_c_20).toRight ((Comparable<?>) Expr.concat (_gv_java__2, _ve_entry)).toRight (_c_14).yield ()).yield ();
    429407        break _block3;
    430408      }
     
    610588            Expr _v_deref__deref__item2 = (Expr) _v_deref__item2.at ((0 + 1 + 1 + 1 + 1));
    611589            Expr _v_deref__deref__item22 = (Expr) _v_deref__item2.at ((0 + 1 + 1 + 1 + 1 + 1));
    612             int _v_len7 = _v_deref__deref__item22.length ();
     590            int _v_len7 = _v_deref__deref__item2.length ();
    613591            int _v_len8 = 0;
    614592            if (_v_len7 < _v_len8)
     
    616594              break _block2__branch2;
    617595            }
    618             int _v_len__out = (_v_len7 - _v_len8);
    619             int _v_len9 = _v_deref__deref__item2.length ();
     596            int _v_len__in = (_v_len7 - _v_len8);
     597            int _v_len9 = _v_deref__deref__item22.length ();
    620598            int _v_len10 = 0;
    621599            if (_v_len9 < _v_len10)
     
    623601              break _block2__branch2;
    624602            }
    625             int _v_len__in = (_v_len9 - _v_len10);
     603            int _v_len__out = (_v_len9 - _v_len10);
    626604            if (!_c_28.termEquals (_v_deref__item2, 0))
    627605            {
     
    676654            Expr _v_deref__deref__item3 = (Expr) _v_deref__item3.at ((0 + 1 + 1 + 1));
    677655            Expr _v_deref__deref__item32 = (Expr) _v_deref__item3.at ((0 + 1 + 1 + 1 + 1));
    678             int _v_len13 = _v_deref__deref__item32.length ();
     656            int _v_len13 = _v_deref__deref__item3.length ();
    679657            int _v_len14 = 0;
    680658            if (_v_len13 < _v_len14)
     
    682660              break _block2__branch3;
    683661            }
    684             int _v_len__ress = (_v_len13 - _v_len14);
    685             int _v_len15 = _v_deref__deref__item3.length ();
     662            int _v_len__args = (_v_len13 - _v_len14);
     663            int _v_len15 = _v_deref__deref__item32.length ();
    686664            int _v_len16 = 0;
    687665            if (_v_len15 < _v_len16)
     
    689667              break _block2__branch3;
    690668            }
    691             int _v_len__args = (_v_len15 - _v_len16);
     669            int _v_len__ress = (_v_len15 - _v_len16);
    692670            if (!_v_deref__item3.isSymbolAt (0))
    693671            {
     
    780758                Result _gs_auxcall3 = new Result (Expr.empty);
    781759                ReplaceQuotes (_gs_auxcall2.getExpr (), _gs_auxcall3);
    782                 _ve_refalFormat = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall3.getExpr ()).toRight (_c_34).yield ());
     760                _ve_refalFormat = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall3.getExpr ()).toRight (_c_34).yield ());
    783761                break _block5;
    784762              }
     
    793771            Result _ge_auxcall7 = new Result (Expr.empty);
    794772            ASAIL_To_Java (_ve_body, _ge_auxcall7);
    795             _ve_java__item = Expr.getConcatenator ().toRight (_c_19).toRight (_ve_refalFormat).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall4.getExpr ()).toRight (_c_40).toRight (_ve_return__type).toRight (_c_40).toRight (_ge_auxcall5.getExpr ()).toRight (_c_39).toRight (_ge_auxcall6.getExpr ()).toRight (_c_38).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable) Expr.concat (_ge_auxcall7.getExpr (), _ve_return)).toRight (_c_14).yield ()).yield ();
     773            _ve_java__item = Expr.getConcatenator ().toRight (_c_19).toRight (_ve_refalFormat).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall4.getExpr ()).toRight (_c_40).toRight (_ve_return__type).toRight (_c_40).toRight (_ge_auxcall5.getExpr ()).toRight (_c_39).toRight (_ge_auxcall6.getExpr ()).toRight (_c_38).yield ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable<?>) Expr.concat (_ge_auxcall7.getExpr (), _ve_return)).toRight (_c_14).yield ()).yield ();
    796774            break _block2;
    797775          }
     
    839817            Expr _v_deref__deref__item5 = (Expr) _v_deref__item5.at ((0 + 1 + 1));
    840818            Expr _v_deref__deref__item52 = (Expr) _v_deref__item5.at ((0 + 1 + 1 + 1));
    841             int _v_len21 = _v_deref__deref__item52.length ();
     819            int _v_len21 = _v_deref__deref__item5.length ();
    842820            int _v_len22 = 0;
    843821            if (_v_len21 < _v_len22)
     
    845823              break _block2__branch5;
    846824            }
    847             int _v_len__arg2 = (_v_len21 - _v_len22);
    848             int _v_len23 = _v_deref__deref__item5.length ();
     825            int _v_len__arg1 = (_v_len21 - _v_len22);
     826            int _v_len23 = _v_deref__deref__item52.length ();
    849827            int _v_len24 = 0;
    850828            if (_v_len23 < _v_len24)
     
    852830              break _block2__branch5;
    853831            }
    854             int _v_len__arg1 = (_v_len23 - _v_len24);
     832            int _v_len__arg2 = (_v_len23 - _v_len24);
    855833            if (!_c_44.termEquals (_v_deref__item5, 0))
    856834            {
     
    876854            Result _ge_auxcall9 = new Result (Expr.empty);
    877855            ASAIL_To_Java (_ve_body, _ge_auxcall9);
    878             _ve_java__item = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_46).toRight (_ve_cond).toRight (_c_45).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable) _ge_auxcall9.getExpr ()).toRight (_c_14).yield ());
     856            _ve_java__item = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_46).toRight (_ve_cond).toRight (_c_45).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable<?>) _ge_auxcall9.getExpr ()).toRight (_c_14).yield ());
    879857            break _block2;
    880858          }
     
    943921            Result _ge_auxcall13 = new Result (Expr.empty);
    944922            ASAIL_To_Java (_ve_body, _ge_auxcall13);
    945             _ve_java__item = Expr.getConcatenator ().toRight (_ge_auxcall12.getExpr ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_46).toRight (_ve_j__cond.getExpr ()).toRight (_c_45).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable) Expr.concat (_ve_if__yes__assigns, _ge_auxcall13.getExpr ())).toRight (_c_14).yield ()).toRight (_ve_if__not__assigns).yield ();
     923            _ve_java__item = Expr.getConcatenator ().toRight (_ge_auxcall12.getExpr ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_46).toRight (_ve_j__cond.getExpr ()).toRight (_c_45).yield ()).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable<?>) Expr.concat (_ve_if__yes__assigns, _ge_auxcall13.getExpr ())).toRight (_c_14).yield ()).toRight (_ve_if__not__assigns).yield ();
    946924            break _block2;
    947925          }
     
    981959            }
    982960            int _v_len__cont__label = (_v_len31 - _v_len32);
    983             int _v_len33 = _v_deref__deref__item73.length ();
     961            int _v_len33 = _v_deref__deref__item72.length ();
    984962            int _v_len34 = 0;
    985963            if (_v_len33 < _v_len34)
     
    987965              break _block2__branch7;
    988966            }
    989             int _v_len__step = (_v_len33 - _v_len34);
    990             int _v_len35 = _v_deref__deref__item72.length ();
     967            int _v_len__break__label = (_v_len33 - _v_len34);
     968            int _v_len35 = _v_deref__deref__item73.length ();
    991969            int _v_len36 = 0;
    992970            if (_v_len35 < _v_len36)
     
    994972              break _block2__branch7;
    995973            }
    996             int _v_len__break__label = (_v_len35 - _v_len36);
     974            int _v_len__step = (_v_len35 - _v_len36);
    997975            if (!_c_49.termEquals (_v_deref__item7, 0))
    998976            {
     
    1021999                _vt__dollar_tmp_m_162_m_25 = _ve_cont__label.subexpr (0, 1);
    10221000                Result _ge_auxcall14 = new Result (Expr.empty);
    1023                 refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable) Expr.concat (_c_50, _ve_cont__label)), _ge_auxcall14);
     1001                refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable<?>) Expr.concat (_c_50, _ve_cont__label)), _ge_auxcall14);
    10241002                _ve_cont = Expr.concat (_ge_auxcall14.getExpr (), _c_51);
    10251003                break _block7;
     
    10371015                _vt__dollar_tmp_m_165_m_26 = _ve_break__label.subexpr (0, 1);
    10381016                Result _ge_auxcall15 = new Result (Expr.empty);
    1039                 refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable) Expr.concat (_c_50, _ve_break__label)), _ge_auxcall15);
     1017                refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable<?>) Expr.concat (_c_50, _ve_break__label)), _ge_auxcall15);
    10401018                _ve_break = Expr.concat (_ge_auxcall15.getExpr (), _c_51);
    10411019                break _block8;
     
    11051083                Result _ge_auxcall17 = new Result (Expr.empty);
    11061084                refal.plus.JavaMangle.Rfp2Java (_vt_var2, _ge_auxcall17);
    1107                 _ve_split__vars = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_56).toRight (_ge_auxcall16.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_54).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_56).toRight (_ge_auxcall17.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_57).yield ());
     1085                _ve_split__vars = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_56).toRight (_ge_auxcall16.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_54).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_56).toRight (_ge_auxcall17.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_57).yield ());
    11081086                break _block9;
    11091087              }
     
    11171095            Result _ge_auxcall20 = new Result (Expr.empty);
    11181096            ASAIL_To_Java (_ve_body, _ge_auxcall20);
    1119             _ve_java__item = Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_ve_break).toRight (_ve_cont).toRight (_c_58).toRight (_ge_auxcall18.getExpr ()).toRight (_c_45).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable) Expr.getConcatenator ().toRight (_ve_split__vars).toRight (_ge_auxcall19.getExpr ()).toRight (_ge_auxcall20.getExpr ()).yield ()).toRight (_c_14).yield ());
     1097            _ve_java__item = Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_ve_break).toRight (_ve_cont).toRight (_c_58).toRight (_ge_auxcall18.getExpr ()).toRight (_c_45).yield (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_ve_split__vars).toRight (_ge_auxcall19.getExpr ()).toRight (_ge_auxcall20.getExpr ()).yield ()).toRight (_c_14).yield ());
    11201098            break _block2;
    11211099          }
     
    11541132            _ve_label = _v_deref__deref__item8.subexpr (0, _v_len__label);
    11551133            Result _ge_auxcall21 = new Result (Expr.empty);
    1156             refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable) Expr.concat (_c_50, _ve_label)), _ge_auxcall21);
     1134            refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable<?>) Expr.concat (_c_50, _ve_label)), _ge_auxcall21);
    11571135            Result _ge_auxcall22 = new Result (Expr.empty);
    11581136            ASAIL_To_Java (_ve_body, _ge_auxcall22);
    1159             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall21.getExpr ()).toRight (_c_59).toRight ((Comparable) _ge_auxcall22.getExpr ()).toRight (_c_14).yield ());
     1137            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall21.getExpr ()).toRight (_c_59).toRight ((Comparable<?>) _ge_auxcall22.getExpr ()).toRight (_c_14).yield ());
    11601138            break _block2;
    11611139          }
     
    11851163            Result _ge_auxcall25 = new Result (Expr.empty);
    11861164            ASAIL_To_Java (_ve_body, _ge_auxcall25);
    1187             _ve_java__item = Expr.concat (_c_65, (Comparable) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable) Expr.concat ((Comparable) Expr.concat (_c_64, (Comparable) Expr.getConcatenator ().toRight (_c_63).toRight (_ge_auxcall23.getExpr ()).toRight (_c_62).toRight (_ge_auxcall24.getExpr ()).toRight (_c_61).yield ()), _ge_auxcall25.getExpr ())).toRight (_c_14).yield ());
     1165            _ve_java__item = Expr.concat (_c_65, (Comparable<?>) Expr.getConcatenator ().toRight (_c_42).toRight ((Comparable<?>) Expr.concat ((Comparable<?>) Expr.concat (_c_64, (Comparable<?>) Expr.getConcatenator ().toRight (_c_63).toRight (_ge_auxcall23.getExpr ()).toRight (_c_62).toRight (_ge_auxcall24.getExpr ()).toRight (_c_61).yield ()), _ge_auxcall25.getExpr ())).toRight (_c_14).yield ());
    11881166            break _block2;
    11891167          }
     
    12091187            Result _ge_auxcall26 = new Result (Expr.empty);
    12101188            ASAIL_To_Java (_ve_body, _ge_auxcall26);
    1211             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_68).toRight ((Comparable) Expr.concat (_c_67, (Comparable) _ge_auxcall26.getExpr ())).toRight (_c_14).yield ());
     1189            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_68).toRight ((Comparable<?>) Expr.concat (_c_67, (Comparable<?>) _ge_auxcall26.getExpr ())).toRight (_c_14).yield ());
    12121190            break _block2;
    12131191          }
     
    12291207            Result _ge_auxcall28 = new Result (Expr.empty);
    12301208            refal.plus.Box.Get (Func_Name, _ge_auxcall28);
    1231             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_63).toRight (_ge_auxcall27.getExpr ()).toRight (_c_62).toRight (_ge_auxcall28.getExpr ()).toRight (_c_72).yield ());
     1209            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_63).toRight (_ge_auxcall27.getExpr ()).toRight (_c_62).toRight (_ge_auxcall28.getExpr ()).toRight (_c_72).yield ());
    12321210            break _block2;
    12331211          }
     
    12751253            Expr_Int_To_Java (_ve_min, _va_5);
    12761254            _ve_min = _va_5.getExpr ();
    1277             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_77).toRight (_ve_new__var).toRight (_c_55).toRight (_ve_n.getExpr ()).toRight (_c_76).toRight (_ve_min).toRight (_c_75).yield ());
     1255            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_77).toRight (_ve_new__var).toRight (_c_55).toRight (_ve_n.getExpr ()).toRight (_c_76).toRight (_ve_min).toRight (_c_75).yield ());
    12781256            break _block2;
    12791257          }
     
    13211299            Expr_Int_To_Java (_ve_min, _va_6);
    13221300            _ve_min = _va_6.getExpr ();
    1323             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_77).toRight (_ve_new__var).toRight (_c_55).toRight (_ve_n.getExpr ()).toRight (_c_79).toRight (_ve_min).toRight (_c_75).yield ());
     1301            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_77).toRight (_ve_new__var).toRight (_c_55).toRight (_ve_n.getExpr ()).toRight (_c_79).toRight (_ve_min).toRight (_c_75).yield ());
    13241302            break _block2;
    13251303          }
     
    13621340            Result _ge_auxcall30 = new Result (Expr.empty);
    13631341            Expr_Int_To_Java (_ve_expr, _ge_auxcall30);
    1364             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_81).toRight (_ge_auxcall29.getExpr ()).toRight (_c_55).toRight (_ge_auxcall30.getExpr ()).toRight (_c_6).yield ());
     1342            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_81).toRight (_ge_auxcall29.getExpr ()).toRight (_c_55).toRight (_ge_auxcall30.getExpr ()).toRight (_c_6).yield ());
    13651343            break _block2;
    13661344          }
     
    14031381            Result _ge_auxcall32 = new Result (Expr.empty);
    14041382            Expr_Int_To_Java (_ve_expr, _ge_auxcall32);
    1405             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall31.getExpr ()).toRight (_c_55).toRight (_ge_auxcall32.getExpr ()).toRight (_c_6).yield ());
     1383            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall31.getExpr ()).toRight (_c_55).toRight (_ge_auxcall32.getExpr ()).toRight (_c_6).yield ());
    14061384            break _block2;
    14071385          }
     
    14441422                }
    14451423                refal.plus.Table.Bind (Result, _vt_var, _ve_j__var.getExpr ());
    1446                 _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_84).toRight (_ve_j__var.getExpr ()).toRight (_c_83).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
     1424                _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_84).toRight (_ve_j__var.getExpr ()).toRight (_c_83).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
    14471425                break _block11;
    14481426              }
    14491427              refal.plus.Table.Unbind (Result, _vt_var);
    1450               _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_56).toRight (_ve_j__var.getExpr ()).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
     1428              _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_56).toRight (_ve_j__var.getExpr ()).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
    14511429            }
    14521430            break _block2;
     
    15071485                  Result _ge_auxcall33 = new Result (Expr.empty);
    15081486                  refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall33);
    1509                   _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall33.getExpr ()).toRight (_c_85).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
     1487                  _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall33.getExpr ()).toRight (_c_85).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
    15101488                  break _exit2;
    15111489                }
     
    15181496                  break _block12__branch2;
    15191497                }
    1520                 _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall34.getExpr ()).toRight (_c_85).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
     1498                _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall34.getExpr ()).toRight (_c_85).toRight (_ve_j__expr.getExpr ()).toRight (_c_75).yield ());
    15211499                break _block12;
    15221500              }
    15231501              Result _ge_auxcall35 = new Result (Expr.empty);
    15241502              refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall35);
    1525               _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall35.getExpr ()).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
     1503              _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall35.getExpr ()).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
    15261504            }
    15271505            break _block2;
     
    15451523            Result _ge_auxcall36 = new Result (Expr.empty);
    15461524            Var_To_Java (_vt_var, _ge_auxcall36);
    1547             _ve_java__item = new Expr ((Comparable) Expr.concat (_ge_auxcall36.getExpr (), _c_87));
     1525            _ve_java__item = new Expr ((Comparable<?>) Expr.concat (_ge_auxcall36.getExpr (), _c_87));
    15481526            break _block2;
    15491527          }
     
    15651543            _vt_label = _v_deref__item18.subexpr ((0 + 1), 1);
    15661544            Result _ge_auxcall37 = new Result (Expr.empty);
    1567             refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable) Expr.concat (_c_50, _vt_label)), _ge_auxcall37);
    1568             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_89).toRight (_ge_auxcall37.getExpr ()).toRight (_c_6).yield ());
     1545            refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable<?>) Expr.concat (_c_50, _vt_label)), _ge_auxcall37);
     1546            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_89).toRight (_ge_auxcall37.getExpr ()).toRight (_c_6).yield ());
    15691547            break _block2;
    15701548          }
     
    15861564            _vt_label = _v_deref__item19.subexpr ((0 + 1), 1);
    15871565            Result _ge_auxcall38 = new Result (Expr.empty);
    1588             refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable) Expr.concat (_c_50, _vt_label)), _ge_auxcall38);
    1589             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_91).toRight (_ge_auxcall38.getExpr ()).toRight (_c_6).yield ());
     1566            refal.plus.JavaMangle.Rfp2Java (new Expr ((Comparable<?>) Expr.concat (_c_50, _vt_label)), _ge_auxcall38);
     1567            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_91).toRight (_ge_auxcall38.getExpr ()).toRight (_c_6).yield ());
    15901568            break _block2;
    15911569          }
     
    16111589            Result _ge_auxcall39 = new Result (Expr.empty);
    16121590            Expr_Ref_To_Java (_ve_expr, _ge_auxcall39);
    1613             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_93).toRight (_ge_auxcall39.getExpr ()).toRight (_c_75).yield ());
     1591            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_93).toRight (_ge_auxcall39.getExpr ()).toRight (_c_75).yield ());
    16141592            break _block2;
    16151593          }
     
    16971675                Result _gs_auxcall41 = new Result (Expr.empty);
    16981676                ReplaceQuotes (_gs_auxcall40.getExpr (), _gs_auxcall41);
    1699                 _ve_refalDecl = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall41.getExpr ()).toRight (_c_34).yield ());
     1677                _ve_refalDecl = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall41.getExpr ()).toRight (_c_34).yield ());
    17001678                break _block14;
    17011679              }
     
    17041682            Result _ge_auxcall42 = new Result (Expr.empty);
    17051683            Access_Mode (_vs_linkage, _ge_auxcall42);
    1706             _ve_java__item = Expr.concat (_ve_refalDecl, (Comparable) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall42.getExpr ()).toRight (_c_96).toRight (_ve_n).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
     1684            _ve_java__item = Expr.concat (_ve_refalDecl, (Comparable<?>) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall42.getExpr ()).toRight (_c_96).toRight (_ve_n).toRight (_c_55).toRight (_ve_j__expr.getExpr ()).toRight (_c_6).yield ());
    17071685            break _block2;
    17081686          }
     
    17851763                Result _gs_auxcall44 = new Result (Expr.empty);
    17861764                ReplaceQuotes (_gs_auxcall43.getExpr (), _gs_auxcall44);
    1787                 _ve_refalDecl = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall44.getExpr ()).toRight (_c_34).yield ());
     1765                _ve_refalDecl = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_35).toRight (_gs_auxcall44.getExpr ()).toRight (_c_34).yield ());
    17881766                break _block15;
    17891767              }
     
    17941772            Result _ge_auxcall46 = new Result (Expr.empty);
    17951773            Name_To_Java (_vt_name, _ge_auxcall46);
    1796             _ve_java__item = Expr.concat (_ve_refalDecl, (Comparable) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall45.getExpr ()).toRight (_c_96).toRight (_ge_auxcall46.getExpr ()).toRight (_c_100).toRight (_ve_class__name).toRight (_c_99).toRight (_vs_n).toRight (_c_98).yield ());
     1774            _ve_java__item = Expr.concat (_ve_refalDecl, (Comparable<?>) Expr.getConcatenator ().toRight (_c_41).toRight (_ge_auxcall45.getExpr ()).toRight (_c_96).toRight (_ge_auxcall46.getExpr ()).toRight (_c_100).toRight (_ve_class__name).toRight (_c_99).toRight (_vs_n).toRight (_c_98).yield ());
    17971775            break _block2;
    17981776          }
     
    18541832          Expr _v_deref__deref__item25 = (Expr) _v_deref__item25.at ((0 + 1 + 1));
    18551833          Expr _v_deref__deref__item252 = (Expr) _v_deref__item25.at ((0 + 1 + 1 + 1));
    1856           int _v_len75 = _v_deref__deref__item252.length ();
     1834          int _v_len75 = _v_deref__deref__item25.length ();
    18571835          int _v_len76 = 0;
    18581836          if (_v_len75 < _v_len76)
     
    18601838            throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ASAIL_To_Java", "Unexpected fail");
    18611839          }
    1862           int _v_len__ress2 = (_v_len75 - _v_len76);
    1863           int _v_len77 = _v_deref__deref__item25.length ();
     1840          int _v_len__args2 = (_v_len75 - _v_len76);
     1841          int _v_len77 = _v_deref__deref__item252.length ();
    18641842          int _v_len78 = 0;
    18651843          if (_v_len77 < _v_len78)
     
    18671845            throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ASAIL_To_Java", "Unexpected fail");
    18681846          }
    1869           int _v_len__args2 = (_v_len77 - _v_len78);
     1847          int _v_len__ress2 = (_v_len77 - _v_len78);
    18701848          if (!_v_deref__item25.isSymbolAt (0))
    18711849          {
     
    18961874                break _block16__branch1;
    18971875              }
    1898               _ve_java__item = Expr.concat (_ve_decls.getExpr (), (Comparable) Expr.getConcatenator ().toRight (_c_105).toRight (_ve_c).toRight (_c_104).yield ());
     1876              _ve_java__item = Expr.concat (_ve_decls.getExpr (), (Comparable<?>) Expr.getConcatenator ().toRight (_c_105).toRight (_ve_c).toRight (_c_104).yield ());
    18991877              break _block16;
    19001878            }
     
    19021880            refal.plus.Box.Get (Res_Assigns, _ge_auxcall48);
    19031881            refal.plus.Box.Store (Res_Assigns, Expr.empty);
    1904             _ve_java__item = Expr.getConcatenator ().toRight (_ve_decls.getExpr ()).toRight ((Comparable) Expr.concat (_ve_c, _c_6)).toRight (_ge_auxcall48.getExpr ()).yield ();
     1882            _ve_java__item = Expr.getConcatenator ().toRight (_ve_decls.getExpr ()).toRight ((Comparable<?>) Expr.concat (_ve_c, _c_6)).toRight (_ge_auxcall48.getExpr ()).yield ();
    19051883          }
    19061884        }
     
    19541932        }
    19551933        int _v_len__ress = (_v_len1 - _v_len2);
    1956         Expr _v_compose1 = Expr.concat ((Comparable) _ge_arg1, _ge_arg2);
     1934        Expr _v_compose1 = Expr.concat ((Comparable<?>) _ge_arg1, _ge_arg2);
    19571935        if (_v_compose1.isSymbolAt (0))
    19581936        {
     
    19811959            Result _ge_auxcall1 = new Result (Expr.empty);
    19821960            refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall1);
    1983             Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable) _ge_auxcall1.getExpr ()), _v_res1, _v_res2);
     1961            Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable<?>) _ge_auxcall1.getExpr ()), _v_res1, _v_res2);
    19841962            break _block2;
    19851963          }
     
    20151993              Result _ge_auxcall2 = new Result (Expr.empty);
    20161994              refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall2);
    2017               Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable) _ge_auxcall2.getExpr ()), _v_res1, _v_res2);
     1995              Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable<?>) _ge_auxcall2.getExpr ()), _v_res1, _v_res2);
    20181996              break _exit1;
    20191997            }
     
    20252003          Result _ge_auxcall3 = new Result (Expr.empty);
    20262004          refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall3);
    2027           refal.plus.Box.Put (Res_Assigns, new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall3.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_106).yield ()));
     2005          refal.plus.Box.Put (Res_Assigns, new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_ge_auxcall3.getExpr ()).toRight (_c_55).toRight (_ve_new__var).toRight (_c_106).yield ()));
    20282006          Result _v_Declare__Results1 = new Result (Expr.empty);
    2029           Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable) _ve_new__var), _v_Declare__Results1, _v_res2);
    2030           _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_84).toRight (_ve_new__var).toRight (_c_107).yield (), _v_Declare__Results1.getExpr ()));
     2007          Declare_Results (_ve_r, Expr.concat (_ve_ress, (Comparable<?>) _ve_new__var), _v_Declare__Results1, _v_res2);
     2008          _v_res1.assign (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_84).toRight (_ve_new__var).toRight (_c_107).yield (), _v_Declare__Results1.getExpr ()));
    20312009        }
    20322010        break _block1;
     
    20392017      }
    20402018      int _v_len__ress2 = (_v_len7 - _v_len8);
    2041       Expr _v_compose2 = Expr.concat ((Comparable) _ge_arg1, _ge_arg2);
     2019      Expr _v_compose2 = Expr.concat ((Comparable<?>) _ge_arg1, _ge_arg2);
    20422020      if (!_c_19.termEquals (_v_compose2, 0))
    20432021      {
     
    22302208        Expr _v_deref__deref__erm3 = (Expr) _v_deref__erm3.at ((0 + 1 + _v_len__expr3));
    22312209        Expr _v_deref__deref__erm32 = (Expr) _v_deref__erm3.at ((0 + 1 + _v_len__expr3 + 1));
    2232         int _v_len9 = _v_deref__deref__erm32.length ();
     2210        int _v_len9 = _v_deref__deref__erm3.length ();
    22332211        int _v_len10 = 0;
    22342212        if (_v_len9 < _v_len10)
     
    22362214          break _block1__branch3;
    22372215        }
    2238         int _v_len__len = (_v_len9 - _v_len10);
    2239         int _v_len11 = _v_deref__deref__erm3.length ();
     2216        int _v_len__pos2 = (_v_len9 - _v_len10);
     2217        int _v_len11 = _v_deref__deref__erm32.length ();
    22402218        int _v_len12 = 0;
    22412219        if (_v_len11 < _v_len12)
     
    22432221          break _block1__branch3;
    22442222        }
    2245         int _v_len__pos2 = (_v_len11 - _v_len12);
     2223        int _v_len__len = (_v_len11 - _v_len12);
    22462224        if (!_c_121.termEquals (_v_deref__erm3, 0))
    22472225        {
     
    23442322            break _block2;
    23452323          }
    2346           throw new RefalException (new Expr ((Comparable) Expr.concat (_c_126, _vs_ObjectSymbol)));
     2324          throw new RefalException (new Expr ((Comparable<?>) Expr.concat (_c_126, _vs_ObjectSymbol)));
    23472325        }
    23482326        break _block1;
     
    25302508        Expr _v_deref__deref__deref__cond = (Expr) _v_deref__deref__cond.at ((0 + 1 + 1));
    25312509        Expr _v_deref__deref__deref__cond2 = (Expr) _v_deref__deref__cond.at ((0 + 1 + 1 + 1));
    2532         int _v_len1 = _v_deref__deref__deref__cond2.length ();
     2510        int _v_len1 = _v_deref__deref__deref__cond.length ();
    25332511        int _v_len2 = 0;
    25342512        if (_v_len1 < _v_len2)
     
    25362514          break _block1__branch1;
    25372515        }
    2538         int _v_len__ress = (_v_len1 - _v_len2);
    2539         int _v_len3 = _v_deref__deref__deref__cond.length ();
     2516        int _v_len__exprs = (_v_len1 - _v_len2);
     2517        int _v_len3 = _v_deref__deref__deref__cond2.length ();
    25402518        int _v_len4 = 0;
    25412519        if (_v_len3 < _v_len4)
     
    25432521          break _block1__branch1;
    25442522        }
    2545         int _v_len__exprs = (_v_len3 - _v_len4);
     2523        int _v_len__ress = (_v_len3 - _v_len4);
    25462524        if (!_c_48.termEquals (_v_deref__cond, 0))
    25472525        {
     
    26652643        Expr _v_deref__deref__cond4 = (Expr) _v_deref__cond4.at ((0 + 1 + _v_len__expr1));
    26662644        Expr _v_deref__deref__cond42 = (Expr) _v_deref__cond4.at ((0 + 1 + _v_len__expr1 + 1));
    2667         int _v_len13 = _v_deref__deref__cond42.length ();
     2645        int _v_len13 = _v_deref__deref__cond4.length ();
    26682646        int _v_len14 = 0;
    26692647        if (_v_len13 < _v_len14)
     
    26712649          break _block1__branch4;
    26722650        }
    2673         int _v_len__pos2 = (_v_len13 - _v_len14);
    2674         int _v_len15 = _v_deref__deref__cond4.length ();
     2651        int _v_len__expr22 = (_v_len13 - _v_len14);
     2652        int _v_len15 = _v_deref__deref__cond42.length ();
    26752653        int _v_len16 = 0;
    26762654        if (_v_len15 < _v_len16)
     
    26782656          break _block1__branch4;
    26792657        }
    2680         int _v_len__expr22 = (_v_len15 - _v_len16);
     2658        int _v_len__pos2 = (_v_len15 - _v_len16);
    26812659        if (!_c_145.termEquals (_v_deref__cond4, 0))
    26822660        {
     
    27212699        Expr _v_deref__deref__cond5 = (Expr) _v_deref__cond5.at ((0 + 1 + _v_len__expr12));
    27222700        Expr _v_deref__deref__cond52 = (Expr) _v_deref__cond5.at ((0 + 1 + _v_len__expr12 + 1));
    2723         int _v_len19 = _v_deref__deref__cond52.length ();
     2701        int _v_len19 = _v_deref__deref__cond5.length ();
    27242702        int _v_len20 = 0;
    27252703        if (_v_len19 < _v_len20)
     
    27272705          break _block1__branch5;
    27282706        }
    2729         int _v_len__pos3 = (_v_len19 - _v_len20);
    2730         int _v_len21 = _v_deref__deref__cond5.length ();
     2707        int _v_len__expr23 = (_v_len19 - _v_len20);
     2708        int _v_len21 = _v_deref__deref__cond52.length ();
    27312709        int _v_len22 = 0;
    27322710        if (_v_len21 < _v_len22)
     
    27342712          break _block1__branch5;
    27352713        }
    2736         int _v_len__expr23 = (_v_len21 - _v_len22);
     2714        int _v_len__pos3 = (_v_len21 - _v_len22);
    27372715        if (!_c_147.termEquals (_v_deref__cond5, 0))
    27382716        {
     
    28142792        _block2: {
    28152793          _block2__branch1: {
    2816             int _v_len5 = _ve_rest.length ();
     2794            int _v_len5 = _ve_arg.length ();
    28172795            int _v_len6 = 0;
    28182796            if (_v_len5 < (_v_len6 + 1))
     
    28202798              break _block2__branch1;
    28212799            }
    2822             int _v_len___dollar_tmp_m_371_m_28 = (_v_len5 - _v_len6);
    2823             int _v_len7 = _ve_arg.length ();
     2800            int _v_len___dollar_tmp_m_371_m_16 = (_v_len5 - _v_len6);
     2801            int _v_len7 = _ve_rest.length ();
    28242802            int _v_len8 = 0;
    28252803            if (_v_len7 < (_v_len8 + 1))
     
    28272805              break _block2__branch1;
    28282806            }
    2829             int _v_len___dollar_tmp_m_371_m_16 = (_v_len7 - _v_len8);
     2807            int _v_len___dollar_tmp_m_371_m_28 = (_v_len7 - _v_len8);
    28302808            Expr _vv__dollar_tmp_m_371_m_16 = Expr.empty;
    28312809            _vv__dollar_tmp_m_371_m_16 = _ve_arg.subexpr (0, _v_len___dollar_tmp_m_371_m_16);
     
    30032981                _block4__branch1: {
    30042982                  int _v_len3 = _v_len__1;
    3005                   int _v_len4 = 12;
     2983                  int _v_len4 = 15;
    30062984                  if (_v_len3 < _v_len4)
    30072985                  {
    30082986                    break _block4__branch1;
    30092987                  }
    3010                   int _v_len___dollar_tmp_m_394_m_27 = (_v_len3 - _v_len4);
     2988                  int _v_len___dollar_tmp_m_394_m_30 = (_v_len3 - _v_len4);
    30112989                  if (!_c_152.equals (_ve_1, 0))
    30122990                  {
    30132991                    break _block4__branch1;
    30142992                  }
    3015                   Expr _ve__dollar_tmp_m_394_m_27 = Expr.empty;
    3016                   _ve__dollar_tmp_m_394_m_27 = _ve_1.subexpr ((0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1), _v_len___dollar_tmp_m_394_m_27);
     2993                  Expr _ve__dollar_tmp_m_394_m_30 = Expr.empty;
     2994                  _ve__dollar_tmp_m_394_m_30 = _ve_1.subexpr ((0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1), _v_len___dollar_tmp_m_394_m_30);
    30172995                  break _block4;
    30182996                }
     
    30693047          Expr _v_deref__Const__Expr__Aux12 = (Expr) _v_Const__Expr__Aux1.getExpr ().at (0);
    30703048          Expr _v_deref__Const__Expr__Aux13 = (Expr) _v_Const__Expr__Aux1.getExpr ().at ((0 + 1));
    3071           int _v_len9 = _v_deref__Const__Expr__Aux13.length ();
     3049          int _v_len9 = _v_deref__Const__Expr__Aux12.length ();
    30723050          int _v_len10 = 0;
    30733051          if (_v_len9 < _v_len10)
     
    30753053            break _block2__branch2;
    30763054          }
    3077           int _v_len__2 = (_v_len9 - _v_len10);
    3078           int _v_len11 = _v_deref__Const__Expr__Aux12.length ();
     3055          int _v_len__12 = (_v_len9 - _v_len10);
     3056          int _v_len11 = _v_deref__Const__Expr__Aux13.length ();
    30793057          int _v_len12 = 0;
    30803058          if (_v_len11 < _v_len12)
     
    30823060            break _block2__branch2;
    30833061          }
    3084           int _v_len__12 = (_v_len11 - _v_len12);
     3062          int _v_len__2 = (_v_len11 - _v_len12);
    30853063          Expr _ve_1 = Expr.empty;
    30863064          _ve_1 = _v_deref__Const__Expr__Aux12.subexpr (0, _v_len__12);
     
    31523130        Result _ve_j__expr = new Result (Expr.empty);
    31533131        Const_Expr_Aux (Expr.empty, _ve_expr, _ve_j__expr);
    3154         _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_c_157).toRight (_ve_accum).toRight (_c_34).yield (), _ve_j__expr.getExpr ()));
     3132        _v_res1.assign (Expr.concat ((Comparable<?>) Expr.getConcatenator ().toRight (_c_157).toRight (_ve_accum).toRight (_c_34).yield (), _ve_j__expr.getExpr ()));
    31553133        break _block1;
    31563134      }
     
    31903168            Result _ge_auxcall2 = new Result (Expr.empty);
    31913169            Const_Expr_To_Java (_ve_paren__expr, _ge_auxcall2);
    3192             _ve_java__item = new Expr ((Comparable) Expr.concat (_c_117, _ge_auxcall2.getExpr ()));
     3170            _ve_java__item = new Expr ((Comparable<?>) Expr.concat (_c_117, _ge_auxcall2.getExpr ()));
    31933171            break _block2;
    31943172          }
     
    32113189            Result _ge_auxcall3 = new Result (Expr.empty);
    32123190            Name_To_Java (_vt_name, _ge_auxcall3);
    3213             _ve_java__item = new Expr ((Comparable) _ge_auxcall3.getExpr ());
     3191            _ve_java__item = new Expr ((Comparable<?>) _ge_auxcall3.getExpr ());
    32143192            break _block2;
    32153193          }
     
    32353213            Result _ge_auxcall4 = new Result (Expr.empty);
    32363214            refal.plus.JavaMangle.Rfp2Java (_vt_item, _ge_auxcall4);
    3237             _ve_java__item = new Expr ((Comparable) _ge_auxcall4.getExpr ());
     3215            _ve_java__item = new Expr ((Comparable<?>) _ge_auxcall4.getExpr ());
    32383216            break _block2;
    32393217          }
     
    32563234            Result _ge_auxcall5 = new Result (Expr.empty);
    32573235            Name_To_Java (_vt_name, _ge_auxcall5);
    3258             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_161).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_160).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_159).toRight (_ge_auxcall5.getExpr ()).toRight (_c_158).yield ()).toRight (_c_14).yield ()).toRight (_c_14).yield ());
     3236            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_161).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_160).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_159).toRight (_ge_auxcall5.getExpr ()).toRight (_c_158).yield ()).toRight (_c_14).yield ()).toRight (_c_14).yield ());
    32593237            break _block2;
    32603238          }
     
    32773255            Result _ge_auxcall6 = new Result (Expr.empty);
    32783256            Name_To_Java (_vt_name, _ge_auxcall6);
    3279             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_161).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_160).toRight ((Comparable) Expr.concat ((Comparable) Expr.concat (_ge_auxcall6.getExpr (), _c_158), _c_33)).toRight (_c_14).yield ()).toRight (_c_14).yield ());
     3257            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_161).toRight ((Comparable<?>) Expr.getConcatenator ().toRight (_c_160).toRight ((Comparable<?>) Expr.concat ((Comparable<?>) Expr.concat (_ge_auxcall6.getExpr (), _c_158), _c_33)).toRight (_c_14).yield ()).toRight (_c_14).yield ());
    32803258            break _block2;
    32813259          }
     
    32923270                break _block3__branch1;
    32933271              }
    3294               _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_162).toRight (_vs_sym).toRight (_c_34).yield ());
     3272              _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_162).toRight (_vs_sym).toRight (_c_34).yield ());
    32953273              break _block3;
    32963274            }
     
    33013279            Result _ge_auxcall7 = new Result (Expr.empty);
    33023280            Symbol_To_Java (_vs_sym, _ge_auxcall7);
    3303             _ve_java__item = new Expr ((Comparable) Expr.getConcatenator ().toRight (_c_163).toRight (_ge_auxcall7.getExpr ()).toRight (_c_34).yield ());
     3281            _ve_java__item = new Expr ((Comparable<?>) Expr.getConcatenator ().toRight (_c_163).toRight (_ge_auxcall7.getExpr ()).toRight (_c_34).yield ());
    33043282          }
    33053283        }
     
    38003778  }
    38013779
    3802   @RefalFormat("$func ConvertTo2 s e = e;")
    3803   static  void ConvertTo2 (Expr _vs_javaType, Expr _ve_varName, Result _v_res1) throws RefalException
     3780  @RefalFormat("$func ConvertTo t t = e;")
     3781  static  void ConvertTo (Expr _gt_arg1, Expr _gt_arg2, Result _v_res1) throws RefalException
    38043782  {
    3805     _block1: {
    3806       _block1__branch1: {
    3807         _block2: {
    3808           _block2__branch1: {
    3809             if (!_vs_javaType.termEquals (_c_176, 0))
    3810             {
    3811               break _block2__branch1;
    3812             }
    3813             _v_res1.assign (Expr.getConcatenator ().toRight (_c_177).toRight (_ve_varName).toRight (_c_45).yield ());
    3814             break _block2;
    3815           }
    3816           _block2__branch2: {
    3817             if (!_vs_javaType.termEquals (_c_178, 0))
    3818             {
    3819               break _block2__branch2;
    3820             }
    3821             _v_res1.assign (Expr.getConcatenator ().toRight (_c_180).toRight (_ve_varName).toRight (_c_179).yield ());
    3822             break _block2;
    3823           }
    3824           _block2__branch3: {
    3825             if (!_vs_javaType.termEquals (_c_181, 0))
    3826             {
    3827               break _block2__branch3;
    3828             }
    3829             _v_res1.assign (Expr.getConcatenator ().toRight (_c_183).toRight (_ve_varName).toRight (_c_182).yield ());
    3830             break _block2;
    3831           }
    3832           _block2__branch4: {
    3833             if (!_vs_javaType.termEquals (_c_184, 0))
    3834             {
    3835               break _block2__branch4;
    3836             }
    3837             _v_res1.assign (Expr.getConcatenator ().toRight (_c_183).toRight (_ve_varName).toRight (_c_185).yield ());
    3838             break _block2;
    3839           }
    3840           _block2__branch5: {
    3841             if (!_vs_javaType.termEquals (_c_186, 0))
    3842             {
    3843               break _block2__branch5;
    3844             }
    3845             _v_res1.assign (Expr.getConcatenator ().toRight (_c_183).toRight (_ve_varName).toRight (_c_187).yield ());
    3846             break _block2;
    3847           }
    3848           if (!_vs_javaType.termEquals (_c_188, 0))
    3849           {
    3850             break _block1__branch1;
    3851           }
    3852           _v_res1.assign (Expr.getConcatenator ().toRight (_c_183).toRight (_ve_varName).toRight (_c_189).yield ());
    3853         }
    3854         break _block1;
    3855       }
    3856       _v_res1.assign (Expr.getConcatenator ().toRight (_c_135).toRight (_vs_javaType).toRight (_c_192).toRight (_ve_varName).toRight (_c_191).toRight (_ve_varName).toRight (_c_190).toRight (_ve_varName).toRight (_c_45).yield ());
    3857     }
    3858   }
    3859 
    3860   @RefalFormat("$func ConvertTo t t t = e;")
    3861   static  void ConvertTo (Expr _gt_arg1, Expr _gt_arg2, Expr _gt_arg3, Result _v_res1) throws RefalException
    3862   {
    3863     Expr _v_compose1 = Expr.getConcatenator ().toRight (_gt_arg1).toRight (_gt_arg2).toRight (_gt_arg3).yield ();
     3783    Expr _v_compose1 = Expr.concat (_gt_arg1, _gt_arg2);
    38643784    if (!_v_compose1.isSymbolAt (0))
    38653785    {
     
    38703790    Expr _vt_var = Expr.empty;
    38713791    _vt_var = _v_compose1.subexpr ((0 + 1), 1);
    3872     Expr _vt_convVar = Expr.empty;
    3873     _vt_convVar = _v_compose1.subexpr ((0 + 1 + 1), 1);
    38743792    if (_vt_var.isSymbolAt (0))
    38753793    {
     
    38833801      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertTo", "Unexpected fail");
    38843802    }
    3885     int _v_len___dollar_tmp_m_545_m_23 = (_v_len1 - _v_len2);
     3803    int _v_len___dollar_tmp_m_531_m_23 = (_v_len1 - _v_len2);
    38863804    if (!_v_deref__var.isSymbolAt (0))
    38873805    {
     
    38903808    Expr _vs_refType = Expr.empty;
    38913809    _vs_refType = _v_deref__var.subexpr (0, 1);
    3892     Expr _ve__dollar_tmp_m_545_m_23 = Expr.empty;
    3893     _ve__dollar_tmp_m_545_m_23 = _v_deref__var.subexpr ((0 + 1), _v_len___dollar_tmp_m_545_m_23);
     3810    Expr _ve__dollar_tmp_m_531_m_23 = Expr.empty;
     3811    _ve__dollar_tmp_m_531_m_23 = _v_deref__var.subexpr ((0 + 1), _v_len___dollar_tmp_m_531_m_23);
    38943812    _block1: {
    38953813      _block1__branch1: {
    3896         if (!_vs_refType.termEquals (_c_193, 0))
     3814        if (!_vs_refType.termEquals (_c_176, 0))
    38973815        {
    38983816          break _block1__branch1;
    38993817        }
    3900         Result _ge_auxcall1 = new Result (Expr.empty);
    3901         refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall1);
    3902         Result _ge_auxcall2 = new Result (Expr.empty);
    3903         refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall2);
    3904         Result _ge_auxcall3 = new Result (Expr.empty);
    3905         ConvertTo2 (_vs_javaType, Expr.concat (_ge_auxcall2.getExpr (), _c_194), _ge_auxcall3);
    3906         _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_vs_javaType).toRight (_c_40).toRight (_ge_auxcall1.getExpr ()).toRight (_c_55).toRight (_ge_auxcall3.getExpr ()).toRight (_c_6).yield ()));
     3818        _block2: {
     3819          _block2__branch1: {
     3820            _block3: {
     3821              _block3__branch1: {
     3822                if (!_vs_javaType.termEquals (_c_177, 0))
     3823                {
     3824                  break _block3__branch1;
     3825                }
     3826                break _block3;
     3827              }
     3828              _block3__branch2: {
     3829                if (!_vs_javaType.termEquals (_c_178, 0))
     3830                {
     3831                  break _block3__branch2;
     3832                }
     3833                break _block3;
     3834              }
     3835              _block3__branch3: {
     3836                if (!_vs_javaType.termEquals (_c_179, 0))
     3837                {
     3838                  break _block3__branch3;
     3839                }
     3840                break _block3;
     3841              }
     3842              _block3__branch4: {
     3843                if (!_vs_javaType.termEquals (_c_180, 0))
     3844                {
     3845                  break _block3__branch4;
     3846                }
     3847                break _block3;
     3848              }
     3849              _block3__branch5: {
     3850                if (!_vs_javaType.termEquals (_c_181, 0))
     3851                {
     3852                  break _block3__branch5;
     3853                }
     3854                break _block3;
     3855              }
     3856              if (!_vs_javaType.termEquals (_c_182, 0))
     3857              {
     3858                break _block2__branch1;
     3859              }
     3860            }
     3861            Result _ge_auxcall1 = new Result (Expr.empty);
     3862            refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall1);
     3863            _v_res1.assign (Expr.getConcatenator ().toRight (_c_185).toRight (_vs_javaType).toRight (_c_184).toRight (_ge_auxcall1.getExpr ()).toRight (_c_183).yield ());
     3864            break _block2;
     3865          }
     3866          Result _ge_auxcall2 = new Result (Expr.empty);
     3867          refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall2);
     3868          _v_res1.assign (Expr.getConcatenator ().toRight (_c_188).toRight (_vs_javaType).toRight (_c_187).toRight (_ge_auxcall2.getExpr ()).toRight (_c_186).yield ());
     3869        }
    39073870        break _block1;
    39083871      }
    3909       if (!_vs_refType.termEquals (_c_195, 0))
     3872      if (!_vs_refType.termEquals (_c_189, 0))
    39103873      {
    39113874        throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertTo", "Unexpected fail");
     
    39203883      }
    39213884      int _v_len__javaElemType = (_v_len3 - _v_len4);
    3922       if (!_c_196.equals (_v_ToChars1.getExpr (), (0 + _v_len__javaElemType)))
     3885      if (!_c_190.equals (_v_ToChars1.getExpr (), (0 + _v_len__javaElemType)))
    39233886      {
    39243887        throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertTo", "Unexpected fail");
     
    39283891      Result _vs_javaElemType = new Result (Expr.empty);
    39293892      refal.plus.Convert.ToWord (_ve_javaElemType, _vs_javaElemType);
    3930       Result _ge_auxcall4 = new Result (Expr.empty);
    3931       refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall4);
    3932       Result _ge_auxcall5 = new Result (Expr.empty);
    3933       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall5);
    3934       Result _ge_auxcall6 = new Result (Expr.empty);
    3935       refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall6);
    3936       Result _ge_auxcall7 = new Result (Expr.empty);
    3937       refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall7);
    3938       Result _ge_auxcall8 = new Result (Expr.empty);
    3939       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall8);
    3940       Result _ge_auxcall9 = new Result (Expr.empty);
    3941       ConvertTo2 (_vs_javaElemType.getExpr (), Expr.concat (_ge_auxcall8.getExpr (), _c_197), _ge_auxcall9);
    3942       _v_res1.assign (Expr.concat ((Comparable) Expr.getConcatenator ().toRight (_vs_javaType).toRight (_ge_auxcall4.getExpr ()).toRight (_c_200).toRight (_vs_javaElemType.getExpr ()).toRight (_c_199).toRight (_ge_auxcall5.getExpr ()).toRight (_c_198).yield (), (Comparable) Expr.getConcatenator ().toRight (_c_203).toRight (_ge_auxcall6.getExpr ()).toRight (_c_202).toRight ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall7.getExpr ()).toRight (_c_201).toRight (_ge_auxcall9.getExpr ()).toRight (_c_6).yield ()).yield ()));
     3893      _block4: {
     3894        _block4__branch1: {
     3895          _block5: {
     3896            _block5__branch1: {
     3897              if (!_vs_javaElemType.getExpr ().termEquals (_c_177, 0))
     3898              {
     3899                break _block5__branch1;
     3900              }
     3901              break _block5;
     3902            }
     3903            _block5__branch2: {
     3904              if (!_vs_javaElemType.getExpr ().termEquals (_c_178, 0))
     3905              {
     3906                break _block5__branch2;
     3907              }
     3908              break _block5;
     3909            }
     3910            _block5__branch3: {
     3911              if (!_vs_javaElemType.getExpr ().termEquals (_c_179, 0))
     3912              {
     3913                break _block5__branch3;
     3914              }
     3915              break _block5;
     3916            }
     3917            _block5__branch4: {
     3918              if (!_vs_javaElemType.getExpr ().termEquals (_c_180, 0))
     3919              {
     3920                break _block5__branch4;
     3921              }
     3922              break _block5;
     3923            }
     3924            _block5__branch5: {
     3925              if (!_vs_javaElemType.getExpr ().termEquals (_c_181, 0))
     3926              {
     3927                break _block5__branch5;
     3928              }
     3929              break _block5;
     3930            }
     3931            if (!_vs_javaElemType.getExpr ().termEquals (_c_182, 0))
     3932            {
     3933              break _block4__branch1;
     3934            }
     3935          }
     3936          Result _ge_auxcall3 = new Result (Expr.empty);
     3937          refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall3);
     3938          _v_res1.assign (Expr.getConcatenator ().toRight (_c_185).toRight (_vs_javaElemType.getExpr ()).toRight (_c_191).toRight (_ge_auxcall3.getExpr ()).toRight (_c_45).yield ());
     3939          break _block4;
     3940        }
     3941        Result _ge_auxcall4 = new Result (Expr.empty);
     3942        refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall4);
     3943        Result _ge_auxcall5 = new Result (Expr.empty);
     3944        refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall5);
     3945        _v_res1.assign (Expr.getConcatenator ().toRight (_c_188).toRight (_vs_javaType).toRight (_c_195).toRight (_ge_auxcall4.getExpr ()).toRight (_c_194).toRight (_vs_javaElemType.getExpr ()).toRight (_c_193).toRight (_ge_auxcall5.getExpr ()).toRight (_c_192).yield ());
     3946      }
    39433947    }
    39443948  }
    39453949
    3946   @RefalFormat("$func ConvertFrom2 s e = e;")
    3947   static  void ConvertFrom2 (Expr _vs_javaType, Expr _ve_varName, Result _v_res1) throws RefalException
     3950  @RefalFormat("$func ConvertFrom t e = e;")
     3951  static  void ConvertFrom (Expr _vt_var, Expr _ve_arg, Result _v_res1) throws RefalException
    39483952  {
    3949     _block1: {
    3950       _block1__branch1: {
    3951         _block2: {
    3952           _block2__branch1: {
    3953             if (!_vs_javaType.termEquals (_c_176, 0))
    3954             {
    3955               break _block2__branch1;
    3956             }
    3957             _v_res1.assign (Expr.getConcatenator ().toRight (_c_204).toRight (_ve_varName).toRight (_c_45).yield ());
    3958             break _block2;
    3959           }
    3960           _block2__branch2: {
    3961             if (!_vs_javaType.termEquals (_c_178, 0))
    3962             {
    3963               break _block2__branch2;
    3964             }
    3965             _v_res1.assign (Expr.getConcatenator ().toRight (_c_205).toRight (_ve_varName).toRight (_c_45).yield ());
    3966             break _block2;
    3967           }
    3968           _block3: {
    3969             _block3__branch1: {
    3970               if (!_vs_javaType.termEquals (_c_181, 0))
    3971               {
    3972                 break _block3__branch1;
    3973               }
    3974               break _block3;
    3975             }
    3976             _block3__branch2: {
    3977               if (!_vs_javaType.termEquals (_c_184, 0))
    3978               {
    3979                 break _block3__branch2;
    3980               }
    3981               break _block3;
    3982             }
    3983             _block3__branch3: {
    3984               if (!_vs_javaType.termEquals (_c_186, 0))
    3985               {
    3986                 break _block3__branch3;
    3987               }
    3988               break _block3;
    3989             }
    3990             if (!_vs_javaType.termEquals (_c_188, 0))
    3991             {
    3992               break _block1__branch1;
    3993             }
    3994           }
    3995           _v_res1.assign (Expr.getConcatenator ().toRight (_c_206).toRight (_ve_varName).toRight (_c_45).yield ());
    3996         }
    3997         break _block1;
    3998       }
    3999       _v_res1.assign (Expr.getConcatenator ().toRight (_c_135).toRight (_ve_varName).toRight (_c_209).toRight (_ve_varName).toRight (_c_208).toRight (_vs_javaType).toRight (_c_207).toRight (_ve_varName).toRight (_c_45).yield ());
    4000     }
    4001   }
    4002 
    4003   @RefalFormat("$func ConvertFrom s t t = e;")
    4004   static  void ConvertFrom (Expr _vs_javaType, Expr _vt_var, Expr _vt_convVar, Result _v_res1) throws RefalException
    4005   {
    4006     refal.plus.StdIO.WriteLn (Expr.getConcatenator ().toRight (_vs_javaType).toRight (_vt_var).toRight (_vt_convVar).yield ());
    40073953    if (_vt_var.isSymbolAt (0))
    40083954    {
     
    40163962      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertFrom", "Unexpected fail");
    40173963    }
    4018     int _v_len___dollar_tmp_m_571_m_23 = (_v_len1 - _v_len2);
     3964    int _v_len___dollar_tmp_m_549_m_23 = (_v_len1 - _v_len2);
    40193965    if (!_v_deref__var.isSymbolAt (0))
    40203966    {
     
    40233969    Expr _vs_refType = Expr.empty;
    40243970    _vs_refType = _v_deref__var.subexpr (0, 1);
    4025     Expr _ve__dollar_tmp_m_571_m_23 = Expr.empty;
    4026     _ve__dollar_tmp_m_571_m_23 = _v_deref__var.subexpr ((0 + 1), _v_len___dollar_tmp_m_571_m_23);
     3971    Expr _ve__dollar_tmp_m_549_m_23 = Expr.empty;
     3972    _ve__dollar_tmp_m_549_m_23 = _v_deref__var.subexpr ((0 + 1), _v_len___dollar_tmp_m_549_m_23);
    40273973    _block1: {
    40283974      _block1__branch1: {
    4029         if (!_vs_refType.termEquals (_c_193, 0))
     3975        if (!_vs_refType.termEquals (_c_176, 0))
    40303976        {
    40313977          break _block1__branch1;
    40323978        }
    4033         Result _ge_auxcall1 = new Result (Expr.empty);
    4034         refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall1);
    4035         Result _ge_auxcall2 = new Result (Expr.empty);
    4036         refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall2);
    4037         Result _ge_auxcall3 = new Result (Expr.empty);
    4038         ConvertFrom2 (_vs_javaType, _ge_auxcall2.getExpr (), _ge_auxcall3);
    4039         _v_res1.assign (new Expr ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall1.getExpr ()).toRight (_c_210).toRight (_ge_auxcall3.getExpr ()).toRight (_c_75).yield ()));
     3979        _v_res1.assign (Expr.getConcatenator ().toRight (_c_196).toRight (_ve_arg).toRight (_c_45).yield ());
    40403980        break _block1;
    40413981      }
    4042       if (!_vs_refType.termEquals (_c_195, 0))
     3982      if (!_vs_refType.termEquals (_c_189, 0))
    40433983      {
    40443984        throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertFrom", "Unexpected fail");
    40453985      }
    4046       Result _v_ToChars1 = new Result (Expr.empty);
    4047       refal.plus.Convert.ToChars (_vs_javaType, _v_ToChars1);
    4048       int _v_len3 = _v_ToChars1.getExpr ().length ();
    4049       int _v_len4 = 2;
    4050       if (_v_len3 < _v_len4)
    4051       {
    4052         throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertFrom", "Unexpected fail");
    4053       }
    4054       int _v_len__javaElemType = (_v_len3 - _v_len4);
    4055       if (!_c_196.equals (_v_ToChars1.getExpr (), (0 + _v_len__javaElemType)))
    4056       {
    4057         throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "ConvertFrom", "Unexpected fail");
    4058       }
    4059       Expr _ve_javaElemType = Expr.empty;
    4060       _ve_javaElemType = _v_ToChars1.getExpr ().subexpr (0, _v_len__javaElemType);
    4061       Result _vs_javaElemType = new Result (Expr.empty);
    4062       refal.plus.Convert.ToWord (_ve_javaElemType, _vs_javaElemType);
    4063       Result _ge_auxcall4 = new Result (Expr.empty);
    4064       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall4);
    4065       Result _ge_auxcall5 = new Result (Expr.empty);
    4066       refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall5);
    4067       Result _ge_auxcall6 = new Result (Expr.empty);
    4068       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall6);
    4069       Result _ge_auxcall7 = new Result (Expr.empty);
    4070       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall7);
    4071       Result _ge_auxcall8 = new Result (Expr.empty);
    4072       refal.plus.JavaMangle.Rfp2Java (_vt_convVar, _ge_auxcall8);
    4073       Result _ge_auxcall9 = new Result (Expr.empty);
    4074       ConvertFrom2 (_vs_javaElemType.getExpr (), Expr.concat (_ge_auxcall8.getExpr (), _c_211), _ge_auxcall9);
    4075       Result _ge_auxcall10 = new Result (Expr.empty);
    4076       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall10);
    4077       Result _ge_auxcall11 = new Result (Expr.empty);
    4078       refal.plus.JavaMangle.Rfp2Java (_vt_var, _ge_auxcall11);
    4079       _v_res1.assign (Expr.getConcatenator ().toRight ((Comparable) Expr.getConcatenator ().toRight (_c_214).toRight (_ge_auxcall4.getExpr ()).toRight (_c_213).toRight (_ge_auxcall5.getExpr ()).toRight (_c_212).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_216).toRight (_ge_auxcall6.getExpr ()).toRight (_c_202).toRight ((Comparable) Expr.getConcatenator ().toRight (_c_215).toRight (_ge_auxcall7.getExpr ()).toRight (_c_201).toRight (_ge_auxcall9.getExpr ()).toRight (_c_6).yield ()).yield ()).toRight ((Comparable) Expr.getConcatenator ().toRight (_ge_auxcall10.getExpr ()).toRight (_c_217).toRight (_ge_auxcall11.getExpr ()).toRight (_c_75).yield ()).yield ());
     3986      _v_res1.assign (Expr.getConcatenator ().toRight (_c_197).toRight (_ve_arg).toRight (_c_45).yield ());
    40803987    }
    40813988  }
    40823989
    40833990  @RefalFormat("$func WrapGen s s t (e) (e) e = e;")
    4084   static  void WrapGen (Expr _vs_linkage, Expr _vs_tag, Expr _vt_qname, Expr _ve_in, Expr _ve_out, Expr _ve_native, Result _v_res1) throws RefalException
     3991  static  void WrapGen (Expr _gs_arg1, Expr _gs_arg2, Expr _gt_arg3, Expr _ge_arg4, Expr _ge_arg5, Expr _ge_arg6, Result _v_res1) throws RefalException
    40853992  {
     3993    int _v_len1 = (_ge_arg6.length () + 5);
     3994    int _v_len2 = 5;
     3995    if (_v_len1 < _v_len2)
     3996    {
     3997      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     3998    }
     3999    int _v_len__native = (_v_len1 - _v_len2);
     4000    Expr _v_compose1 = Expr.getConcatenator ().toRight (_gs_arg1).toRight (_gs_arg2).toRight (_gt_arg3).toRight ((Comparable<?>) _ge_arg4).toRight ((Comparable<?>) _ge_arg5).toRight (_ge_arg6).yield ();
     4001    if (_v_compose1.isSymbolAt ((0 + 1 + 1 + 1)))
     4002    {
     4003      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4004    }
     4005    if (_v_compose1.isSymbolAt ((0 + 1 + 1 + 1 + 1)))
     4006    {
     4007      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4008    }
     4009    Expr _v_deref__compose1 = (Expr) _v_compose1.at ((0 + 1 + 1 + 1));
     4010    Expr _v_deref__compose12 = (Expr) _v_compose1.at ((0 + 1 + 1 + 1 + 1));
     4011    int _v_len3 = _v_deref__compose1.length ();
     4012    int _v_len4 = 0;
     4013    if (_v_len3 < _v_len4)
     4014    {
     4015      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4016    }
     4017    int _v_len__in = (_v_len3 - _v_len4);
     4018    int _v_len5 = _v_deref__compose12.length ();
     4019    int _v_len6 = 0;
     4020    if (_v_len5 < _v_len6)
     4021    {
     4022      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4023    }
     4024    int _v_len__out = (_v_len5 - _v_len6);
     4025    if (!_v_compose1.isSymbolAt (0))
     4026    {
     4027      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4028    }
     4029    if (!_c_29.termEquals (_v_compose1, (0 + 1)))
     4030    {
     4031      throw new RefalException ("org.refal.plus.compiler.rfp_asail_java", "WrapGen", "Unexpected fail");
     4032    }
     4033    Expr _vs_linkage = Expr.empty;
     4034    _vs_linkage = _v_compose1.subexpr (0, 1);
     4035    Expr _vt_qname = Expr.empty;
     4036    _vt_qname = _v_compose1.subexpr ((0 + 1 + 1), 1);
     4037    Expr _ve_native = Expr.empty;
     4038    _ve_native = _v_compose1.subexpr ((0 + 1 + 1 + 1 + 1 + 1), _v_len__native);
     4039    Expr _ve_in = Expr.empty;
     4040    _ve_in = _v_deref__compose1.subexpr (0, _v_len__in);
     4041    Expr _ve_out = Expr.empty;
     4042    _ve_out = _v_deref__compose12.subexpr (0, _v_len__out);
     4043    _block1: {
     4044      _block1__branch1: {
     4045        Result _v_Get1 = new Result (Expr.empty);
     4046        refal.plus.Box.Get (Entry, _v_Get1);
     4047        if (_v_Get1.getExpr ().length () < 1)
     4048        {
     4049          break _block1__branch1;
     4050        }
     4051        Expr.SplitIterator _va_19 = _v_Get1.getExpr ().leftSplit(0);
     4052        _exit1: _continue1: for ( ; ; _va_19.next ())
     4053        {
     4054          Expr _ve__dollar_tmp_m_556_m_21 = _va_19.getLeft();
     4055          Expr _v_lsplit__Get1 = _va_19.getRight();
     4056          if (!_va_19.isValid ())
     4057          {
     4058            break _block1__branch1;
     4059          }
     4060          int _v_len7 = _v_lsplit__Get1.length ();
     4061          int _v_len8 = 1;
     4062          if (_v_len7 < _v_len8)
     4063          {
     4064            break _block1__branch1;
     4065          }
     4066          int _v_len___dollar_tmp_m_556_m_31 = (_v_len7 - _v_len8);
     4067          if (!_vt_qname.termEquals (_v_lsplit__Get1, 0))
     4068          {
     4069            continue _continue1;
     4070          }
     4071          Expr _ve__dollar_tmp_m_556_m_31 = Expr.empty;
     4072          _ve__dollar_tmp_m_556_m_31 = _v_lsplit__Get1.subexpr ((0 + 1), _v_len___dollar_tmp_m_556_m_31);
     4073          refal.plus.Box.Store (Entry_Name, _vt_qname);
     4074          break _exit1;
     4075        }
     4076        break _block1;
     4077      }
     4078    }
    40864079    Result _gs_auxcall1 = new Result (Expr.empty);
    40874080    refal.plus.Convert.ToWord (_ve_native, _gs_auxcall1);
     
    40924085    Result _ve_javaArgTypes = new Result (Expr.empty);
    40934086    NativeJava.DeclarationReader (_gs_auxcall1.getExpr (), _vs_static, _vs_javaResType, _vs_className, _vs_methodName, _ve_javaArgTypes);
    4094     Expr _ve_return__type = Expr.empty;
    4095     Expr _ve_return = Expr.empty;
    4096     _block1: {
    4097       _block1__branch1: {
    4098