text: // This file automatically generated from 'TreeUtils.ref'
  // Don't edit! Edit 'TreeUtils.ref' and recompile it
  
  #include "refalrts.h"
  
  #define cookie_ns cookie_ns_3013129240_534251396
  #define COOKIE1_ 3013129240U
  #define COOKIE2_ 534251396U
  
  enum efunc {
    efunc_u_u_Stepm_Drop = 0,
    efunc_u_u_Metau_Mu = 1,
    efunc_d_table = 2,
    efunc_Map = 3,
    efunc_gen_Apply_Z3 = 4,
    efunc_gen_Apply_Z0 = 5,
    efunc_Reduce = 6,
    efunc_gen_Reduce_S1A1 = 7,
    efunc_gen_Apply_Z2 = 8,
    efunc_Apply = 9,
    efunc_DoMapAccum = 10,
    efunc_gen_DoMapAccum_S1A1 = 11,
    efunc_Add = 12,
    efunc_Sub = 13,
    efunc_Fetch = 14,
    efunc_Pipe = 15,
    efunc_gen_Pipe_S2L1 = 16,
    efunc_gen_Pipe_S3L1 = 17,
    efunc_Unique = 18,
    efunc_ExtractVariablesm_Sentences = 19,
    efunc_ExtractVariablesm_Expr = 20,
    efunc_ExtractVariablesm_Tail = 21,
    efunc_gen_DoNewVarName_Z1 = 22,
    efunc_gen_DoNewVarName_B1Z1 = 23,
    efunc_IncName = 24,
    efunc_gen_DoNewVarName_A2 = 25,
    efunc_gen_DoNewVarName_A1D1 = 26,
    efunc_gen_IncName_S1C1 = 27,
    efunc_gen_Map_Z1 = 28,
    efunc_gen_Map_Z2 = 29,
    efunc_gen_Map_Z3 = 30,
    efunc_Mod = 31,
    efunc_HashLittle2m_Chars = 32,
    efunc_gen_HashName_A2 = 33,
    efunc_HashNamem_Suffix = 34,
    efunc_gen_HashName_A1B1 = 35,
    efunc_gen_HashName_A1 = 36,
    efunc_Symb = 37,
    efunc_Mu = 38,
    efunc_Up = 39,
    efunc_Evm_met = 40,
    efunc_Residue = 41,
    efunc_u_u_Metau_Residue = 42,
    efunc_MapAccum = 43,
    efunc_UnBracket = 44,
    efunc_DelAccumulator = 45,
    efunc_Inc = 46,
    efunc_Dec = 47,
    efunc_ExtractVariables = 48,
    efunc_NewVarName = 49,
    efunc_DoNewVarName = 50,
    efunc_CreateContext = 51,
    efunc_CreateSpecPatternForContext = 52,
    efunc_AddSuffix = 53,
    efunc_HashName = 54,
    efunc_gen_Apply_Z4 = 55,
    efunc_gen_DoNewVarName_A2Z1 = 56,
    efunc_gen_DoNewVarName_Z0 = 57,
    efunc_gen_DoNewVarName_B1Z0 = 58,
    efunc_gen_CreateContext_S1L1D2 = 59,
    efunc_gen_Map_Z0 = 60,
    efunc_gen_CreateContext_S1L1Z0 = 61,
    efunc_gen_CreateContext_S2L1D2 = 62,
    efunc_gen_CreateContext_S2L1Z0 = 63,
    efunc_gen_CreateSpecPatternForContext_L1D3 = 64,
    efunc_gen_CreateSpecPatternForContext_L1Z0 = 65,
    efunc_gen_DoNewVarName_A2Z0 = 66,
  };
  
  
  enum ident {
    ident_Condition = 0,
    ident_Var = 1,
    ident_Brackets = 2,
    ident_ADTm_Brackets = 3,
    ident_CallBrackets = 4,
    ident_ClosureBrackets = 5,
    ident_MarkupContext = 6,
    ident_NoMarkupContext = 7,
    ident_SUF = 8,
    ident_Mu = 9,
    ident_Up = 10,
    ident_Evm_met = 11,
    ident_Residue = 12,
    ident_u_u_Metau_Residue = 13,
    ident_Apply = 14,
    ident_Map = 15,
    ident_Reduce = 16,
    ident_Fetch = 17,
    ident_MapAccum = 18,
    ident_DoMapAccum = 19,
    ident_UnBracket = 20,
    ident_DelAccumulator = 21,
    ident_Inc = 22,
    ident_Dec = 23,
    ident_Pipe = 24,
    ident_ExtractVariables = 25,
    ident_ExtractVariablesm_Sentences = 26,
    ident_ExtractVariablesm_Tail = 27,
    ident_ExtractVariablesm_Expr = 28,
    ident_NewVarName = 29,
    ident_DoNewVarName = 30,
    ident_IncName = 31,
    ident_CreateContext = 32,
    ident_CreateSpecPatternForContext = 33,
    ident_AddSuffix = 34,
    ident_HashName = 35,
    ident_HashNamem_Suffix = 36,
    ident_Symbol = 37,
    ident_Identifier = 38,
    ident_VAR = 39,
  };
  
  
  static refalrts::FnResult func_Mu(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 9 elems
    refalrts::Iter context[9];
    refalrts::zeros( context, 9 );
    // </0 & Mu/4 e.Arg/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Arg as range 2
    //DEBUG: e.Arg: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 & __Step-Drop/6 >/7 Tile{ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: e.Arg/2 HalfReuse: & $table/1 } >/8 Tile{ ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::alloc_name(vm, context[6], functions[efunc_u_u_Stepm_Drop]);
    refalrts::alloc_close_call(vm, context[7]);
    refalrts::alloc_close_call(vm, context[8]);
    refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
    refalrts::reinit_name(context[1], functions[efunc_d_table]);
    refalrts::push_stack( vm, context[8] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[7] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_elem( res, context[8] );
    res = refalrts::splice_evar( res, context[0], context[1] );
    res = refalrts::splice_evar( res, context[5], context[7] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Mu("Mu", COOKIE1_, COOKIE2_, func_Mu);
  
  
  static refalrts::FnResult func_Residue(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 9 elems
    refalrts::Iter context[9];
    refalrts::zeros( context, 9 );
    // </0 & Residue/4 e.Arg/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Arg as range 2
    //DEBUG: e.Arg: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 & __Step-Drop/6 >/7 Tile{ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: e.Arg/2 HalfReuse: & $table/1 } >/8 Tile{ ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::alloc_name(vm, context[6], functions[efunc_u_u_Stepm_Drop]);
    refalrts::alloc_close_call(vm, context[7]);
    refalrts::alloc_close_call(vm, context[8]);
    refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
    refalrts::reinit_name(context[1], functions[efunc_d_table]);
    refalrts::push_stack( vm, context[8] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[7] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_elem( res, context[8] );
    res = refalrts::splice_evar( res, context[0], context[1] );
    res = refalrts::splice_evar( res, context[5], context[7] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Residue("Residue", COOKIE1_, COOKIE2_, func_Residue);
  
  
  static refalrts::FnResult func_u_u_Metau_Residue(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 8 elems
    refalrts::Iter context[8];
    refalrts::zeros( context, 8 );
    // </0 & __Meta_Residue/4 e.Arg/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Arg as range 2
    //DEBUG: e.Arg: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 & __Step-Drop/6 >/7 Tile{ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: e.Arg/2 AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::alloc_name(vm, context[6], functions[efunc_u_u_Stepm_Drop]);
    refalrts::alloc_close_call(vm, context[7]);
    refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[7] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[0];
    res = refalrts::splice_evar( res, context[5], context[7] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_u_u_Metau_Residue("__Meta_Residue", COOKIE1_, COOKIE2_, func_u_u_Metau_Residue);
  
  
  static refalrts::FnResult func_Apply(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 11 elems
    refalrts::Iter context[11];
    refalrts::zeros( context, 11 );
    // </0 & Apply/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Apply/4 t.new1/5 e.new2/2 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    // closed e.new2 as range 2
    do {
      // </0 & Apply/4 s.Fn/5 e.Argument/7 >/1
      context[7] = context[2];
      context[8] = context[3];
      if( ! refalrts::svar_term( context[5], context[5] ) )
        continue;
      // closed e.Argument as range 7
      //DEBUG: s.Fn: 5
      //DEBUG: e.Argument: 7
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: s.Fn/5 AsIs: e.Argument/7 HalfReuse: & $table/1 } >/9 Tile{ ]] }
      refalrts::alloc_close_call(vm, context[9]);
      refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
      refalrts::reinit_name(context[1], functions[efunc_d_table]);
      refalrts::push_stack( vm, context[9] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_elem( res, context[9] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Apply/4 (/5 t.Closure/9 e.Bounded/7 )/6 e.Argument/2 >/1
    context[7] = 0;
    context[8] = 0;
    if( ! refalrts::brackets_term( context[7], context[8], context[5] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Argument as range 2
    context[10] = refalrts::tvar_left( context[9], context[7], context[8] );
    if( ! context[10] )
      return refalrts::cRecognitionImpossible;
    // closed e.Bounded as range 7
    //DEBUG: e.Argument: 2
    //DEBUG: t.Closure: 9
    //DEBUG: e.Bounded: 7
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} (/5 {REMOVED TILE} {REMOVED TILE} )/6 {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 AsIs: & Apply/4 } Tile{ AsIs: t.Closure/9 } Tile{ AsIs: e.Bounded/7 } Tile{ AsIs: e.Argument/2 } Tile{ AsIs: >/1 ]] }
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[7], context[8] );
    res = refalrts::splice_evar( res, context[9], context[10] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Apply("Apply", COOKIE1_, COOKIE2_, func_Apply);
  
  
  static refalrts::FnResult func_Map(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 24 elems
    refalrts::Iter context[24];
    refalrts::zeros( context, 24 );
    // </0 & Map/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Map/4 t.new1/5 e.new2/2 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    // closed e.new2 as range 2
    do {
      // </0 & Map/4 t.new3/5 t.new4/9 e.new5/7 >/1
      context[7] = context[2];
      context[8] = context[3];
      context[10] = refalrts::tvar_left( context[9], context[7], context[8] );
      if( ! context[10] )
        continue;
      // closed e.new5 as range 7
      do {
        // </0 & Map/4 s.Fn/5 t.Next/9 e.Tail/11 >/1
        context[11] = context[7];
        context[12] = context[8];
        if( ! refalrts::svar_term( context[5], context[5] ) )
          continue;
        // closed e.Tail as range 11
        //DEBUG: t.Next: 9
        //DEBUG: s.Fn: 5
        //DEBUG: e.Tail: 11
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: s.Fn/5 AsIs: t.Next/9 } & $table/13 >/14 </15 & Map/16 s.Fn/5/17 Tile{ AsIs: e.Tail/11 } Tile{ AsIs: >/1 ]] }
        refalrts::alloc_name(vm, context[13], functions[efunc_d_table]);
        refalrts::alloc_close_call(vm, context[14]);
        refalrts::alloc_open_call(vm, context[15]);
        refalrts::alloc_name(vm, context[16], functions[efunc_Map]);
        refalrts::copy_stvar(vm, context[17], context[5]);
        refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[15] );
        refalrts::push_stack( vm, context[14] );
        refalrts::push_stack( vm, context[0] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[11], context[12] );
        res = refalrts::splice_evar( res, context[13], context[17] );
        refalrts::use( res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      do {
        // </0 & Map/4 (/5 t./15 e.0/13 )/6 t.Next/9 e.Tail/11 >/1
        context[11] = context[7];
        context[12] = context[8];
        context[13] = 0;
        context[14] = 0;
        if( ! refalrts::brackets_term( context[13], context[14], context[5] ) )
          continue;
        // closed e.Tail as range 11
        context[16] = refalrts::tvar_left( context[15], context[13], context[14] );
        if( ! context[16] )
          continue;
        // closed e.0 as range 13
        //DEBUG: t.Next: 9
        //DEBUG: e.Tail: 11
        //DEBUG: t.: 15
        //DEBUG: e.0: 13
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ } </17 & Apply@3/18 t./15/19 e.0/13/21 Tile{ AsIs: t.Next/9 } >/23 Tile{ AsIs: </0 AsIs: & Map/4 AsIs: (/5 AsIs: t./15 AsIs: e.0/13 AsIs: )/6 } Tile{ AsIs: e.Tail/11 } Tile{ AsIs: >/1 ]] }
        refalrts::alloc_open_call(vm, context[17]);
        refalrts::alloc_name(vm, context[18], functions[efunc_gen_Apply_Z3]);
        refalrts::copy_evar(vm, context[19], context[20], context[15], context[16]);
        refalrts::copy_evar(vm, context[21], context[22], context[13], context[14]);
        refalrts::alloc_close_call(vm, context[23]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[0] );
        refalrts::link_brackets( context[5], context[6] );
        refalrts::push_stack( vm, context[23] );
        refalrts::push_stack( vm, context[17] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[11], context[12] );
        res = refalrts::splice_evar( res, context[0], context[6] );
        res = refalrts::splice_elem( res, context[23] );
        res = refalrts::splice_evar( res, context[9], context[10] );
        res = refalrts::splice_evar( res, context[21], context[22] );
        res = refalrts::splice_evar( res, context[17], context[20] );
        refalrts::use( res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & Map/4 t.Fn/5 t.Next/9 e.Tail/11 >/1
      context[11] = context[7];
      context[12] = context[8];
      // closed e.Tail as range 11
      //DEBUG: t.Fn: 5
      //DEBUG: t.Next: 9
      //DEBUG: e.Tail: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply@0/4 AsIs: t.Fn/5 AsIs: t.Next/9 } >/13 </14 & Map/15 t.Fn/5/16 Tile{ AsIs: e.Tail/11 } Tile{ AsIs: >/1 ]] }
      refalrts::alloc_close_call(vm, context[13]);
      refalrts::alloc_open_call(vm, context[14]);
      refalrts::alloc_name(vm, context[15], functions[efunc_Map]);
      refalrts::copy_evar(vm, context[16], context[17], context[5], context[6]);
      refalrts::update_name(context[4], functions[efunc_gen_Apply_Z0]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[14] );
      refalrts::push_stack( vm, context[13] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[11], context[12] );
      res = refalrts::splice_evar( res, context[13], context[17] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Map/4 t.Fn/5 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    //DEBUG: t.Fn: 5
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & Map/4 t.Fn/5 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Map("Map", COOKIE1_, COOKIE2_, func_Map);
  
  
  static refalrts::FnResult func_gen_Reduce_S1A1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 13 elems
    refalrts::Iter context[13];
    refalrts::zeros( context, 13 );
    // </0 & Reduce$1=1/4 t.Fn/5 (/9 e.Tail/7 )/10 t.Acc$a/11 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[7] = 0;
    context[8] = 0;
    context[9] = refalrts::brackets_left( context[7], context[8], context[2], context[3] );
    if( ! context[9] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[9], context[10]);
    // closed e.Tail as range 7
    context[12] = refalrts::tvar_left( context[11], context[2], context[3] );
    if( ! context[12] )
      return refalrts::cRecognitionImpossible;
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    //DEBUG: t.Fn: 5
    //DEBUG: e.Tail: 7
    //DEBUG: t.Acc$a: 11
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} (/9 {REMOVED TILE} )/10 {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Reduce/4 AsIs: t.Fn/5 } Tile{ AsIs: t.Acc$a/11 } Tile{ AsIs: e.Tail/7 } Tile{ AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_Reduce]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[7], context[8] );
    res = refalrts::splice_evar( res, context[11], context[12] );
    refalrts::splice_to_freelist_open( vm, context[6], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Reduce_S1A1("Reduce$1=1", COOKIE1_, COOKIE2_, func_gen_Reduce_S1A1);
  
  
  static refalrts::FnResult func_Reduce(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 20 elems
    refalrts::Iter context[20];
    refalrts::zeros( context, 20 );
    // </0 & Reduce/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Reduce/4 t.new1/5 t.new2/7 e.new3/2 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_left( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    // closed e.new3 as range 2
    do {
      // </0 & Reduce/4 t.Fn/5 t.Acc/7 t.Next/11 e.Tail/9 >/1
      context[9] = context[2];
      context[10] = context[3];
      context[12] = refalrts::tvar_left( context[11], context[9], context[10] );
      if( ! context[12] )
        continue;
      // closed e.Tail as range 9
      //DEBUG: t.Fn: 5
      //DEBUG: t.Acc: 7
      //DEBUG: t.Next: 11
      //DEBUG: e.Tail: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ } </13 & Reduce$1=1/14 t.Fn/5/15 (/17 Tile{ AsIs: e.Tail/9 } )/18 Tile{ AsIs: </0 Reuse: & Apply@2/4 AsIs: t.Fn/5 AsIs: t.Acc/7 AsIs: t.Next/11 } >/19 Tile{ AsIs: >/1 ]] }
      refalrts::alloc_open_call(vm, context[13]);
      refalrts::alloc_name(vm, context[14], functions[efunc_gen_Reduce_S1A1]);
      refalrts::copy_evar(vm, context[15], context[16], context[5], context[6]);
      refalrts::alloc_open_bracket(vm, context[17]);
      refalrts::alloc_close_bracket(vm, context[18]);
      refalrts::alloc_close_call(vm, context[19]);
      refalrts::update_name(context[4], functions[efunc_gen_Apply_Z2]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[13] );
      refalrts::push_stack( vm, context[19] );
      refalrts::push_stack( vm, context[0] );
      refalrts::link_brackets( context[17], context[18] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_elem( res, context[19] );
      res = refalrts::splice_evar( res, context[0], context[12] );
      res = refalrts::splice_elem( res, context[18] );
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_evar( res, context[13], context[17] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Reduce/4 t.Fn/5 t.Acc/7 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    //DEBUG: t.Fn: 5
    //DEBUG: t.Acc: 7
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & Reduce/4 t.Fn/5 {REMOVED TILE} >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: t.Acc/7 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[7], context[8] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Reduce("Reduce", COOKIE1_, COOKIE2_, func_Reduce);
  
  
  static refalrts::FnResult func_Fetch(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 7 elems
    refalrts::Iter context[7];
    refalrts::zeros( context, 7 );
    // </0 & Fetch/4 e.Argument/2 t.Function/5 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_right( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    // closed e.Argument as range 2
    //DEBUG: t.Function: 5
    //DEBUG: e.Argument: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply/4 } Tile{ AsIs: t.Function/5 } Tile{ AsIs: e.Argument/2 } Tile{ AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_Apply]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[5], context[6] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Fetch("Fetch", COOKIE1_, COOKIE2_, func_Fetch);
  
  
  static refalrts::FnResult func_MapAccum(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 11 elems
    refalrts::Iter context[11];
    refalrts::zeros( context, 11 );
    // </0 & MapAccum/4 t.Fn/5 t.Acc/7 e.Tail/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_left( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    // closed e.Tail as range 2
    //DEBUG: t.Fn: 5
    //DEBUG: t.Acc: 7
    //DEBUG: e.Tail: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoMapAccum/4 AsIs: t.Fn/5 AsIs: t.Acc/7 } (/9 )/10 Tile{ AsIs: e.Tail/2 } Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_bracket(vm, context[9]);
    refalrts::alloc_close_bracket(vm, context[10]);
    refalrts::update_name(context[4], functions[efunc_DoMapAccum]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[9], context[10] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[9], context[10] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_MapAccum("MapAccum", COOKIE1_, COOKIE2_, func_MapAccum);
  
  
  static refalrts::FnResult func_gen_DoMapAccum_S1A1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 17 elems
    refalrts::Iter context[17];
    refalrts::zeros( context, 17 );
    // </0 & DoMapAccum$1=1/4 t.Fn/5 (/9 e.Scanned/7 )/10 (/13 e.Tail/11 )/14 t.Acc$a/15 e.StepScanned/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[7] = 0;
    context[8] = 0;
    context[9] = refalrts::brackets_left( context[7], context[8], context[2], context[3] );
    if( ! context[9] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[9], context[10]);
    context[11] = 0;
    context[12] = 0;
    context[13] = refalrts::brackets_left( context[11], context[12], context[2], context[3] );
    if( ! context[13] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[13], context[14]);
    // closed e.Scanned as range 7
    // closed e.Tail as range 11
    context[16] = refalrts::tvar_left( context[15], context[2], context[3] );
    if( ! context[16] )
      return refalrts::cRecognitionImpossible;
    // closed e.StepScanned as range 2
    //DEBUG: t.Fn: 5
    //DEBUG: e.Scanned: 7
    //DEBUG: e.Tail: 11
    //DEBUG: t.Acc$a: 15
    //DEBUG: e.StepScanned: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} (/9 {REMOVED TILE} )/10 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoMapAccum/4 AsIs: t.Fn/5 } Tile{ AsIs: t.Acc$a/15 } Tile{ AsIs: (/13 } Tile{ AsIs: e.Scanned/7 } Tile{ AsIs: e.StepScanned/2 } Tile{ AsIs: )/14 } Tile{ AsIs: e.Tail/11 } Tile{ AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_DoMapAccum]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[13], context[14] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[11], context[12] );
    res = refalrts::splice_elem( res, context[14] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[7], context[8] );
    res = refalrts::splice_elem( res, context[13] );
    res = refalrts::splice_evar( res, context[15], context[16] );
    refalrts::splice_to_freelist_open( vm, context[6], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_DoMapAccum_S1A1("DoMapAccum$1=1", COOKIE1_, COOKIE2_, func_gen_DoMapAccum_S1A1);
  
  
  static refalrts::FnResult func_DoMapAccum(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 26 elems
    refalrts::Iter context[26];
    refalrts::zeros( context, 26 );
    // </0 & DoMapAccum/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & DoMapAccum/4 t.new1/5 t.new2/7 (/11 e.new3/9 )/12 e.new4/2 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_left( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    context[9] = 0;
    context[10] = 0;
    context[11] = refalrts::brackets_left( context[9], context[10], context[2], context[3] );
    if( ! context[11] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[11], context[12]);
    // closed e.new3 as range 9
    // closed e.new4 as range 2
    do {
      // </0 & DoMapAccum/4 t.Fn/5 t.Acc/7 (/11 e.Scanned/13 )/12 t.Next/17 e.Tail/15 >/1
      context[13] = context[9];
      context[14] = context[10];
      context[15] = context[2];
      context[16] = context[3];
      // closed e.Scanned as range 13
      context[18] = refalrts::tvar_left( context[17], context[15], context[16] );
      if( ! context[18] )
        continue;
      // closed e.Tail as range 15
      //DEBUG: t.Fn: 5
      //DEBUG: t.Acc: 7
      //DEBUG: e.Scanned: 13
      //DEBUG: t.Next: 17
      //DEBUG: e.Tail: 15
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoMapAccum$1=1/4 AsIs: t.Fn/5 } Tile{ AsIs: (/11 AsIs: e.Scanned/13 AsIs: )/12 } (/19 Tile{ AsIs: e.Tail/15 } )/20 </21 & Apply@2/22 t.Fn/5/23 Tile{ AsIs: t.Acc/7 } Tile{ AsIs: t.Next/17 } >/25 Tile{ AsIs: >/1 ]] }
      refalrts::alloc_open_bracket(vm, context[19]);
      refalrts::alloc_close_bracket(vm, context[20]);
      refalrts::alloc_open_call(vm, context[21]);
      refalrts::alloc_name(vm, context[22], functions[efunc_gen_Apply_Z2]);
      refalrts::copy_evar(vm, context[23], context[24], context[5], context[6]);
      refalrts::alloc_close_call(vm, context[25]);
      refalrts::update_name(context[4], functions[efunc_gen_DoMapAccum_S1A1]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::push_stack( vm, context[25] );
      refalrts::push_stack( vm, context[21] );
      refalrts::link_brackets( context[19], context[20] );
      refalrts::link_brackets( context[11], context[12] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_elem( res, context[25] );
      res = refalrts::splice_evar( res, context[17], context[18] );
      res = refalrts::splice_evar( res, context[7], context[8] );
      res = refalrts::splice_evar( res, context[20], context[24] );
      res = refalrts::splice_evar( res, context[15], context[16] );
      res = refalrts::splice_elem( res, context[19] );
      res = refalrts::splice_evar( res, context[11], context[12] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & DoMapAccum/4 t.Fn/5 t.Acc/7 (/11 e.Scanned/9 )/12 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Scanned as range 9
    //DEBUG: t.Fn: 5
    //DEBUG: t.Acc: 7
    //DEBUG: e.Scanned: 9
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & DoMapAccum/4 t.Fn/5 {REMOVED TILE} (/11 {REMOVED TILE} )/12 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: t.Acc/7 } Tile{ AsIs: e.Scanned/9 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[9], context[10] );
    res = refalrts::splice_evar( res, context[7], context[8] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_DoMapAccum("DoMapAccum", COOKIE1_, COOKIE2_, func_DoMapAccum);
  
  
  static refalrts::FnResult func_UnBracket(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 9 elems
    refalrts::Iter context[9];
    refalrts::zeros( context, 9 );
    // </0 & UnBracket/4 (/7 e.Expr/5 )/8 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Expr as range 5
    //DEBUG: e.Expr: 5
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & UnBracket/4 (/7 {REMOVED TILE} )/8 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Expr/5 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[5], context[6] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_UnBracket("UnBracket", COOKIE1_, COOKIE2_, func_UnBracket);
  
  
  static refalrts::FnResult func_DelAccumulator(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 7 elems
    refalrts::Iter context[7];
    refalrts::zeros( context, 7 );
    // </0 & DelAccumulator/4 t.Acc/5 e.Tail/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    // closed e.Tail as range 2
    //DEBUG: t.Acc: 5
    //DEBUG: e.Tail: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & DelAccumulator/4 t.Acc/5 {REMOVED TILE} >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Tail/2 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_DelAccumulator("DelAccumulator", COOKIE1_, COOKIE2_, func_DelAccumulator);
  
  
  static refalrts::FnResult func_Inc(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 6 elems
    refalrts::Iter context[6];
    refalrts::zeros( context, 6 );
    // </0 & Inc/4 e.Num/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Num as range 2
    //DEBUG: e.Num: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 Tile{ HalfReuse: & Add/0 HalfReuse: 1/4 AsIs: e.Num/2 AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::reinit_name(context[0], functions[efunc_Add]);
    refalrts::reinit_number(context[4], 1UL);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[0];
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Inc("Inc", COOKIE1_, COOKIE2_, func_Inc);
  
  
  static refalrts::FnResult func_Dec(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 9 elems
    refalrts::Iter context[9];
    refalrts::zeros( context, 9 );
    // </0 & Dec/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & Dec/4 s.Num/7 >/1
      context[5] = context[2];
      context[6] = context[3];
      if( ! refalrts::svar_left( context[7], context[5], context[6] ) )
        continue;
      if( ! refalrts::empty_seq( context[5], context[6] ) )
        continue;
      //DEBUG: s.Num: 7
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & Sub/4 AsIs: s.Num/7 HalfReuse: 1/1 } >/8 Tile{ ]] }
      refalrts::alloc_close_call(vm, context[8]);
      refalrts::update_name(context[4], functions[efunc_Sub]);
      refalrts::reinit_number(context[1], 1UL);
      refalrts::push_stack( vm, context[8] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_elem( res, context[8] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Dec/4 e.Num/2 >/1
    // closed e.Num as range 2
    //DEBUG: e.Num: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Sub/4 } (/5 Tile{ AsIs: e.Num/2 } )/6 1/7 Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_bracket(vm, context[5]);
    refalrts::alloc_close_bracket(vm, context[6]);
    refalrts::alloc_number(vm, context[7], 1UL);
    refalrts::update_name(context[4], functions[efunc_Sub]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[5], context[6] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[6], context[7] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Dec("Dec", COOKIE1_, COOKIE2_, func_Dec);
  
  
  static refalrts::FnResult func_gen_Pipe_S2L1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 15 elems
    refalrts::Iter context[15];
    refalrts::zeros( context, 15 );
    // </0 & Pipe$2\1/4 t.Func/5 (/9 e.Funcs/7 )/10 e.Arg/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[7] = 0;
    context[8] = 0;
    context[9] = refalrts::brackets_left( context[7], context[8], context[2], context[3] );
    if( ! context[9] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[9], context[10]);
    // closed e.Funcs as range 7
    // closed e.Arg as range 2
    //DEBUG: t.Func: 5
    //DEBUG: e.Funcs: 7
    //DEBUG: e.Arg: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Fetch/4 } </11 & Apply/12 Tile{ AsIs: t.Func/5 } Tile{ AsIs: e.Arg/2 } >/13 </14 Tile{ HalfReuse: & Pipe/9 AsIs: e.Funcs/7 HalfReuse: >/10 } Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[11]);
    refalrts::alloc_name(vm, context[12], functions[efunc_Apply]);
    refalrts::alloc_close_call(vm, context[13]);
    refalrts::alloc_open_call(vm, context[14]);
    refalrts::update_name(context[4], functions[efunc_Fetch]);
    refalrts::reinit_name(context[9], functions[efunc_Pipe]);
    refalrts::reinit_close_call(context[10]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[10] );
    refalrts::push_stack( vm, context[14] );
    refalrts::push_stack( vm, context[13] );
    refalrts::push_stack( vm, context[11] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[9], context[10] );
    res = refalrts::splice_evar( res, context[13], context[14] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[5], context[6] );
    res = refalrts::splice_evar( res, context[11], context[12] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Pipe_S2L1("Pipe$2\\1", COOKIE1_, COOKIE2_, func_gen_Pipe_S2L1);
  
  
  static refalrts::FnResult func_gen_Pipe_S3L1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 5 elems
    refalrts::Iter context[5];
    refalrts::zeros( context, 5 );
    // </0 & Pipe$3\1/4 e.Arg/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Arg as range 2
    //DEBUG: e.Arg: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & Pipe$3\1/4 {REMOVED TILE} >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Arg/2 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Pipe_S3L1("Pipe$3\\1", COOKIE1_, COOKIE2_, func_gen_Pipe_S3L1);
  
  
  static refalrts::FnResult func_Pipe(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 13 elems
    refalrts::Iter context[13];
    refalrts::zeros( context, 13 );
    // </0 & Pipe/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & Pipe/4 t.new1/7 e.new2/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[8] = refalrts::tvar_left( context[7], context[5], context[6] );
      if( ! context[8] )
        continue;
      // closed e.new2 as range 5
      do {
        // </0 & Pipe/4 t.Func/7 >/1
        if( ! refalrts::empty_seq( context[5], context[6] ) )
          continue;
        //DEBUG: t.Func: 7
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} </0 & Pipe/4 {REMOVED TILE} >/1 {REMOVED TILE}
        //RESULT: Tile{ [[ } Tile{ AsIs: t.Func/7 } Tile{ ]] }
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = arg_end->next;
        res = refalrts::splice_evar( res, context[7], context[8] );
        refalrts::splice_to_freelist_open( vm, trash_prev, res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & Pipe/4 t.Func/7 e.Funcs/9 >/1
      context[9] = context[5];
      context[10] = context[6];
      // closed e.Funcs as range 9
      //DEBUG: t.Func: 7
      //DEBUG: e.Funcs: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ HalfReuse: [*]/0 Reuse: & Pipe$2\1/4 AsIs: t.Func/7 } (/11 Tile{ AsIs: e.Funcs/9 } )/12 Tile{ HalfReuse: {*}/1 ]] }
      refalrts::alloc_open_bracket(vm, context[11]);
      refalrts::alloc_close_bracket(vm, context[12]);
      refalrts::reinit_closure_head(context[0]);
      refalrts::update_name(context[4], functions[efunc_gen_Pipe_S2L1]);
      refalrts::reinit_unwrapped_closure(context[1], context[0]);
      refalrts::link_brackets( context[11], context[12] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_elem( res, context[12] );
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_elem( res, context[11] );
      refalrts::use( res );
      refalrts::wrap_closure( context[1] );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Pipe/4 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & Pipe/4 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ HalfReuse: & Pipe$3\1/1 ]] }
    refalrts::reinit_name(context[1], functions[efunc_gen_Pipe_S3L1]);
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_Pipe("Pipe", COOKIE1_, COOKIE2_, func_Pipe);
  
  
  static refalrts::FnResult func_ExtractVariables(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 8 elems
    refalrts::Iter context[8];
    refalrts::zeros( context, 8 );
    // </0 & ExtractVariables/4 e.Sentences/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Sentences as range 2
    //DEBUG: e.Sentences: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 & Unique/6 Tile{ AsIs: </0 Reuse: & ExtractVariables-Sentences/4 AsIs: e.Sentences/2 AsIs: >/1 } >/7 Tile{ ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::alloc_name(vm, context[6], functions[efunc_Unique]);
    refalrts::alloc_close_call(vm, context[7]);
    refalrts::update_name(context[4], functions[efunc_ExtractVariablesm_Sentences]);
    refalrts::push_stack( vm, context[7] );
    refalrts::push_stack( vm, context[5] );
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_elem( res, context[7] );
    res = refalrts::splice_evar( res, context[0], context[1] );
    res = refalrts::splice_evar( res, context[5], context[6] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_ExtractVariables("ExtractVariables", 0U, 0U, func_ExtractVariables);
  
  
  static refalrts::FnResult func_ExtractVariablesm_Sentences(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 17 elems
    refalrts::Iter context[17];
    refalrts::zeros( context, 17 );
    // </0 & ExtractVariables-Sentences/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & ExtractVariables-Sentences/4 (/9 (/13 e.Pattern/11 )/14 e.Tail/7 )/10 e.Sentences/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[7] = 0;
      context[8] = 0;
      context[9] = refalrts::brackets_left( context[7], context[8], context[5], context[6] );
      if( ! context[9] )
        continue;
      refalrts::bracket_pointers(context[9], context[10]);
      context[11] = 0;
      context[12] = 0;
      context[13] = refalrts::brackets_left( context[11], context[12], context[7], context[8] );
      if( ! context[13] )
        continue;
      refalrts::bracket_pointers(context[13], context[14]);
      // closed e.Pattern as range 11
      // closed e.Tail as range 7
      // closed e.Sentences as range 5
      //DEBUG: e.Pattern: 11
      //DEBUG: e.Tail: 7
      //DEBUG: e.Sentences: 5
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Pattern/11 } >/15 Tile{ HalfReuse: </9 HalfReuse: & ExtractVariables-Tail/13 } Tile{ AsIs: e.Tail/7 } Tile{ HalfReuse: >/14 } </16 Tile{ HalfReuse: & ExtractVariables-Sentences/10 AsIs: e.Sentences/5 AsIs: >/1 ]] }
      refalrts::alloc_close_call(vm, context[15]);
      refalrts::alloc_open_call(vm, context[16]);
      refalrts::update_name(context[4], functions[efunc_ExtractVariablesm_Expr]);
      refalrts::reinit_open_call(context[9]);
      refalrts::reinit_name(context[13], functions[efunc_ExtractVariablesm_Tail]);
      refalrts::reinit_close_call(context[14]);
      refalrts::reinit_name(context[10], functions[efunc_ExtractVariablesm_Sentences]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[16] );
      refalrts::push_stack( vm, context[14] );
      refalrts::push_stack( vm, context[9] );
      refalrts::push_stack( vm, context[15] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[10];
      res = refalrts::splice_elem( res, context[16] );
      res = refalrts::splice_elem( res, context[14] );
      res = refalrts::splice_evar( res, context[7], context[8] );
      res = refalrts::splice_evar( res, context[9], context[13] );
      res = refalrts::splice_elem( res, context[15] );
      res = refalrts::splice_evar( res, context[11], context[12] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & ExtractVariables-Sentences/4 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & ExtractVariables-Sentences/4 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_ExtractVariablesm_Sentences("ExtractVariables-Sentences", COOKIE1_, COOKIE2_, func_ExtractVariablesm_Sentences);
  
  
  static refalrts::FnResult func_ExtractVariablesm_Tail(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 26 elems
    refalrts::Iter context[26];
    refalrts::zeros( context, 26 );
    // </0 & ExtractVariables-Tail/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & ExtractVariables-Tail/4 (/7 e.new1/5 )/8 e.new2/2 >/1
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    // closed e.new1 as range 5
    // closed e.new2 as range 2
    do {
      // </0 & ExtractVariables-Tail/4 (/7 # Condition/13 (/16 e.ConditionName/14 )/17 (/20 e.Result/18 )/21 (/24 e.Pattern/22 )/25 )/8 e.Tail/11 >/1
      context[9] = context[5];
      context[10] = context[6];
      context[11] = context[2];
      context[12] = context[3];
      context[13] = refalrts::ident_left( identifiers[ident_Condition], context[9], context[10] );
      if( ! context[13] )
        continue;
      context[14] = 0;
      context[15] = 0;
      context[16] = refalrts::brackets_left( context[14], context[15], context[9], context[10] );
      if( ! context[16] )
        continue;
      refalrts::bracket_pointers(context[16], context[17]);
      context[18] = 0;
      context[19] = 0;
      context[20] = refalrts::brackets_left( context[18], context[19], context[9], context[10] );
      if( ! context[20] )
        continue;
      refalrts::bracket_pointers(context[20], context[21]);
      context[22] = 0;
      context[23] = 0;
      context[24] = refalrts::brackets_left( context[22], context[23], context[9], context[10] );
      if( ! context[24] )
        continue;
      refalrts::bracket_pointers(context[24], context[25]);
      if( ! refalrts::empty_seq( context[9], context[10] ) )
        continue;
      // closed e.ConditionName as range 14
      // closed e.Result as range 18
      // closed e.Pattern as range 22
      // closed e.Tail as range 11
      //DEBUG: e.ConditionName: 14
      //DEBUG: e.Result: 18
      //DEBUG: e.Pattern: 22
      //DEBUG: e.Tail: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} e.ConditionName/14 )/17 (/20 {REMOVED TILE} )/21 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Result/18 } Tile{ HalfReuse: >/7 HalfReuse: </13 HalfReuse: & ExtractVariables-Expr/16 } Tile{ AsIs: e.Pattern/22 } Tile{ HalfReuse: >/24 } Tile{ HalfReuse: </25 HalfReuse: & ExtractVariables-Tail/8 AsIs: e.Tail/11 AsIs: >/1 ]] }
      refalrts::update_name(context[4], functions[efunc_ExtractVariablesm_Expr]);
      refalrts::reinit_close_call(context[7]);
      refalrts::reinit_open_call(context[13]);
      refalrts::reinit_name(context[16], functions[efunc_ExtractVariablesm_Expr]);
      refalrts::reinit_close_call(context[24]);
      refalrts::reinit_open_call(context[25]);
      refalrts::reinit_name(context[8], functions[efunc_ExtractVariablesm_Tail]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[25] );
      refalrts::push_stack( vm, context[24] );
      refalrts::push_stack( vm, context[13] );
      refalrts::push_stack( vm, context[7] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[25];
      res = refalrts::splice_elem( res, context[24] );
      res = refalrts::splice_evar( res, context[22], context[23] );
      res = refalrts::splice_evar( res, context[7], context[16] );
      res = refalrts::splice_evar( res, context[18], context[19] );
      refalrts::splice_to_freelist_open( vm, context[4], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & ExtractVariables-Tail/4 (/7 e.Result/5 )/8 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Result as range 5
    //DEBUG: e.Result: 5
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} (/7 {REMOVED TILE} )/8 {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Result/5 } Tile{ AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_ExtractVariablesm_Expr]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[5], context[6] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_ExtractVariablesm_Tail("ExtractVariables-Tail", COOKIE1_, COOKIE2_, func_ExtractVariablesm_Tail);
  
  
  static refalrts::FnResult func_ExtractVariablesm_Expr(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 22 elems
    refalrts::Iter context[22];
    refalrts::zeros( context, 22 );
    // </0 & ExtractVariables-Expr/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & ExtractVariables-Expr/4 t.new1/7 e.new2/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[8] = refalrts::tvar_left( context[7], context[5], context[6] );
      if( ! context[8] )
        continue;
      // closed e.new2 as range 5
      do {
        // </0 & ExtractVariables-Expr/4 (/7 s.new3/13 e.new4/11 )/8 e.new5/9 >/1
        context[9] = context[5];
        context[10] = context[6];
        context[11] = 0;
        context[12] = 0;
        if( ! refalrts::brackets_term( context[11], context[12], context[7] ) )
          continue;
        // closed e.new5 as range 9
        if( ! refalrts::svar_left( context[13], context[11], context[12] ) )
          continue;
        // closed e.new4 as range 11
        do {
          // </0 & ExtractVariables-Expr/4 (/7 # Var/13 s.VarType/18 e.Index/14 )/8 e.Terms/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::ident_term( identifiers[ident_Var], context[13] ) )
            continue;
          // closed e.Terms as range 16
          if( ! refalrts::svar_left( context[18], context[14], context[15] ) )
            continue;
          // closed e.Index as range 14
          //DEBUG: e.Terms: 16
          //DEBUG: s.VarType: 18
          //DEBUG: e.Index: 14
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} {REMOVED TILE} (/7 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ } Tile{ HalfReuse: (/13 AsIs: s.VarType/18 AsIs: e.Index/14 AsIs: )/8 } Tile{ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Terms/16 } Tile{ AsIs: >/1 ]] }
          refalrts::reinit_open_bracket(context[13]);
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[0] );
          refalrts::link_brackets( context[13], context[8] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[0], context[4] );
          res = refalrts::splice_evar( res, context[13], context[8] );
          refalrts::splice_to_freelist_open( vm, trash_prev, res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        do {
          // </0 & ExtractVariables-Expr/4 (/7 # Brackets/13 e.Inner/14 )/8 e.Terms/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::ident_term( identifiers[ident_Brackets], context[13] ) )
            continue;
          // closed e.Inner as range 14
          // closed e.Terms as range 16
          //DEBUG: e.Inner: 14
          //DEBUG: e.Terms: 16
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} (/7 # Brackets/13 {REMOVED TILE} )/8 {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Inner/14 } Tile{ AsIs: e.Terms/16 } Tile{ AsIs: >/1 ]] }
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[0] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[14], context[15] );
          refalrts::splice_to_freelist_open( vm, context[4], res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        do {
          // </0 & ExtractVariables-Expr/4 (/7 # ADT-Brackets/13 (/20 e.Name/18 )/21 e.Inner/14 )/8 e.Terms/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::ident_term( identifiers[ident_ADTm_Brackets], context[13] ) )
            continue;
          context[18] = 0;
          context[19] = 0;
          context[20] = refalrts::brackets_left( context[18], context[19], context[14], context[15] );
          if( ! context[20] )
            continue;
          refalrts::bracket_pointers(context[20], context[21]);
          // closed e.Name as range 18
          // closed e.Inner as range 14
          // closed e.Terms as range 16
          //DEBUG: e.Name: 18
          //DEBUG: e.Inner: 14
          //DEBUG: e.Terms: 16
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} (/7 # ADT-Brackets/13 (/20 e.Name/18 )/21 {REMOVED TILE} )/8 {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Inner/14 } Tile{ AsIs: e.Terms/16 } Tile{ AsIs: >/1 ]] }
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[0] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[14], context[15] );
          refalrts::splice_to_freelist_open( vm, context[4], res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        do {
          // </0 & ExtractVariables-Expr/4 (/7 # CallBrackets/13 e.Inner/14 )/8 e.Terms/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::ident_term( identifiers[ident_CallBrackets], context[13] ) )
            continue;
          // closed e.Inner as range 14
          // closed e.Terms as range 16
          //DEBUG: e.Inner: 14
          //DEBUG: e.Terms: 16
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} (/7 # CallBrackets/13 {REMOVED TILE} )/8 {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Inner/14 } Tile{ AsIs: e.Terms/16 } Tile{ AsIs: >/1 ]] }
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[0] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[14], context[15] );
          refalrts::splice_to_freelist_open( vm, context[4], res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        // </0 & ExtractVariables-Expr/4 (/7 # ClosureBrackets/13 e.Inner/14 )/8 e.Terms/16 >/1
        context[14] = context[11];
        context[15] = context[12];
        context[16] = context[9];
        context[17] = context[10];
        if( ! refalrts::ident_term( identifiers[ident_ClosureBrackets], context[13] ) )
          continue;
        // closed e.Inner as range 14
        // closed e.Terms as range 16
        //DEBUG: e.Inner: 14
        //DEBUG: e.Terms: 16
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} (/7 # ClosureBrackets/13 {REMOVED TILE} )/8 {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Inner/14 } Tile{ AsIs: e.Terms/16 } Tile{ AsIs: >/1 ]] }
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[0] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[16], context[17] );
        res = refalrts::splice_evar( res, context[14], context[15] );
        refalrts::splice_to_freelist_open( vm, context[4], res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & ExtractVariables-Expr/4 t.Other/7 e.Terms/9 >/1
      context[9] = context[5];
      context[10] = context[6];
      // closed e.Terms as range 9
      //DEBUG: t.Other: 7
      //DEBUG: e.Terms: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} t.Other/7 {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 AsIs: & ExtractVariables-Expr/4 } Tile{ AsIs: e.Terms/9 } Tile{ AsIs: >/1 ]] }
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[9], context[10] );
      refalrts::splice_to_freelist_open( vm, context[4], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & ExtractVariables-Expr/4 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & ExtractVariables-Expr/4 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_ExtractVariablesm_Expr("ExtractVariables-Expr", 0U, 0U, func_ExtractVariablesm_Expr);
  
  
  static refalrts::FnResult func_NewVarName(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 23 elems
    refalrts::Iter context[23];
    refalrts::zeros( context, 23 );
    // </0 & NewVarName/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & NewVarName/4 (/7 e.new1/5 )/8 e.new2/2 >/1
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    // closed e.new1 as range 5
    // closed e.new2 as range 2
    do {
      // </0 & NewVarName/4 (/7 e.Vars-B/13 (/19 e.Variable/21 )/20 e.Vars-E/15 )/8 e.Variable/11 >/1
      context[9] = context[5];
      context[10] = context[6];
      context[11] = context[2];
      context[12] = context[3];
      // closed e.Variable as range 11
      context[13] = 0;
      context[14] = 0;
      refalrts::start_e_loop(vm);
      do {
        context[15] = context[9];
        context[16] = context[10];
        context[17] = 0;
        context[18] = 0;
        context[19] = refalrts::brackets_left( context[17], context[18], context[15], context[16] );
        if( ! context[19] )
          continue;
        refalrts::bracket_pointers(context[19], context[20]);
        if( ! refalrts::repeated_evar_left( vm, context[21], context[22], context[11], context[12], context[17], context[18] ) )
          continue;
        if( ! refalrts::empty_seq( context[17], context[18] ) )
          continue;
        // closed e.Vars-E as range 15
        //DEBUG: e.Variable: 11
        //DEBUG: e.Vars-B: 13
        //DEBUG: e.Vars-E: 15
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} e.Variable/21 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName@1/4 AsIs: (/7 } Tile{ AsIs: e.Variable/11 } Tile{ HalfReuse: )/1 } Tile{ AsIs: (/19 } Tile{ AsIs: e.Vars-B/13 } Tile{ AsIs: )/20 AsIs: e.Vars-E/15 HalfReuse: >/8 } Tile{ ]] }
        refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_Z1]);
        refalrts::reinit_close_bracket(context[1]);
        refalrts::reinit_close_call(context[8]);
        refalrts::push_stack( vm, context[8] );
        refalrts::push_stack( vm, context[0] );
        refalrts::link_brackets( context[19], context[20] );
        refalrts::link_brackets( context[7], context[1] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = arg_end->next;
        res = refalrts::splice_evar( res, context[20], context[8] );
        res = refalrts::splice_evar( res, context[13], context[14] );
        res = refalrts::splice_elem( res, context[19] );
        res = refalrts::splice_elem( res, context[1] );
        res = refalrts::splice_evar( res, context[11], context[12] );
        refalrts::splice_to_freelist_open( vm, context[7], res );
        return refalrts::cSuccess;
      } while ( refalrts::open_evar_advance( context[13], context[14], context[9], context[10] ) );
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & NewVarName/4 (/7 e.Vars/5 )/8 e.Variable/2 >/1
    // closed e.Vars as range 5
    // closed e.Variable as range 2
    //DEBUG: e.Vars: 5
    //DEBUG: e.Variable: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ HalfReuse: (/0 HalfReuse: (/4 } Tile{ AsIs: e.Variable/2 } Tile{ HalfReuse: )/7 AsIs: e.Vars/5 AsIs: )/8 } e.Variable/2/9 Tile{ ]] }
    refalrts::copy_evar(vm, context[9], context[10], context[2], context[3]);
    refalrts::reinit_open_bracket(context[0]);
    refalrts::reinit_open_bracket(context[4]);
    refalrts::reinit_close_bracket(context[7]);
    refalrts::link_brackets( context[0], context[8] );
    refalrts::link_brackets( context[4], context[7] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[9], context[10] );
    res = refalrts::splice_evar( res, context[7], context[8] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_NewVarName("NewVarName", 0U, 0U, func_NewVarName);
  
  
  static refalrts::FnResult func_gen_DoNewVarName_A2(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 11 elems
    refalrts::Iter context[11];
    refalrts::zeros( context, 11 );
    // </0 & DoNewVarName=2/4 (/7 e.Vars/5 )/8 s.Mode/9 e.NewIndex/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    // closed e.Vars as range 5
    if( ! refalrts::svar_left( context[9], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.NewIndex as range 2
    //DEBUG: e.Vars: 5
    //DEBUG: s.Mode: 9
    //DEBUG: e.NewIndex: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} s.Mode/9 {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName:1@1/4 HalfReuse: s.Mode9 /7 } (/10 Tile{ AsIs: e.NewIndex/2 } Tile{ AsIs: )/8 } Tile{ AsIs: e.Vars/5 } Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_bracket(vm, context[10]);
    refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_B1Z1]);
    refalrts::reinit_svar( context[7], context[9] );
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[10], context[8] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[5], context[6] );
    res = refalrts::splice_elem( res, context[8] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_elem( res, context[10] );
    refalrts::splice_to_freelist_open( vm, context[7], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_DoNewVarName_A2("DoNewVarName=2", COOKIE1_, COOKIE2_, func_gen_DoNewVarName_A2);
  
  
  static refalrts::FnResult func_DoNewVarName(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 17 elems
    refalrts::Iter context[17];
    refalrts::zeros( context, 17 );
    // </0 & DoNewVarName/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & DoNewVarName/4 (/7 e.new1/5 )/8 e.new2/2 >/1
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    // closed e.new1 as range 5
    // closed e.new2 as range 2
    do {
      // </0 & DoNewVarName/4 (/7 e.Vars/9 )/8 s.Mode/13 e./11 >/1
      context[9] = context[5];
      context[10] = context[6];
      context[11] = context[2];
      context[12] = context[3];
      // closed e.Vars as range 9
      if( ! refalrts::svar_left( context[13], context[11], context[12] ) )
        continue;
      // closed e. as range 11
      //DEBUG: e.Vars: 9
      //DEBUG: s.Mode: 13
      //DEBUG: e.: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=2/4 AsIs: (/7 AsIs: e.Vars/9 AsIs: )/8 AsIs: s.Mode/13 } </14 & IncName/15 Tile{ AsIs: e./11 } >/16 Tile{ AsIs: >/1 ]] }
      refalrts::alloc_open_call(vm, context[14]);
      refalrts::alloc_name(vm, context[15], functions[efunc_IncName]);
      refalrts::alloc_close_call(vm, context[16]);
      refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A2]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::push_stack( vm, context[16] );
      refalrts::push_stack( vm, context[14] );
      refalrts::link_brackets( context[7], context[8] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_elem( res, context[16] );
      res = refalrts::splice_evar( res, context[11], context[12] );
      res = refalrts::splice_evar( res, context[14], context[15] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & DoNewVarName/4 (/7 e.Vars/5 )/8 e.Variable/2 >/1
    // closed e.Vars as range 5
    // closed e.Variable as range 2
    //DEBUG: e.Vars: 5
    //DEBUG: e.Variable: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=1*1/4 AsIs: (/7 AsIs: e.Vars/5 AsIs: )/8 AsIs: e.Variable/2 AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A1D1]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[7], context[8] );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_DoNewVarName("DoNewVarName", COOKIE1_, COOKIE2_, func_DoNewVarName);
  
  
  static refalrts::FnResult func_IncName(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 21 elems
    refalrts::Iter context[21];
    refalrts::zeros( context, 21 );
    // </0 & IncName/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & IncName/4 e.new1/5 s.new2/7 >/1
      context[5] = context[2];
      context[6] = context[3];
      if( ! refalrts::svar_right( context[7], context[5], context[6] ) )
        continue;
      // closed e.new1 as range 5
      do {
        // </0 & IncName/4 e.Name/8 s.Digit/7 >/1
        context[8] = context[5];
        context[9] = context[6];
        // closed e.Name as range 8
        //DEBUG: s.Digit: 7
        //DEBUG: e.Name: 8
        //7: s.Digit
        //8: e.Name
  
        refalrts::reset_allocator(vm);
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        refalrts::alloc_open_call(vm, context[10]);
        refalrts::alloc_name(vm, context[12], functions[efunc_gen_IncName_S1C1]);
        refalrts::alloc_chars(vm, context[13], context[14], "0123456789", 10);
        refalrts::alloc_close_call(vm, context[11]);
        refalrts::push_stack( vm, context[11] );
        refalrts::push_stack( vm, context[10] );
        res = refalrts::splice_elem( res, context[11] );
        res = refalrts::splice_evar( res, context[13], context[14] );
        res = refalrts::splice_elem( res, context[12] );
        res = refalrts::splice_elem( res, context[10] );
        refalrts::use( res );
        refalrts::FnResult rec_res = refalrts::recursive_call_main_loop(vm);
        if (rec_res != refalrts::cSuccess)
          return rec_res;
        refalrts::this_is_generated_function(vm);
        do {
          // </10 & IncName$1?1/14 e._B/15 s.Digit/19 s.Next/20 e._E/17 >/11
          context[12] = 0;
          context[13] = 0;
          context[14] = refalrts::call_left( context[12], context[13], context[10], context[11] );
          context[15] = 0;
          context[16] = 0;
          refalrts::start_e_loop(vm);
          do {
            context[17] = context[12];
            context[18] = context[13];
            if( ! refalrts::repeated_stvar_left( vm, context[19], context[7], context[17], context[18] ) )
              continue;
            if( ! refalrts::svar_left( context[20], context[17], context[18] ) )
              continue;
            // closed e._E as range 17
            //DEBUG: s.Digit: 7
            //DEBUG: e.Name: 8
            //DEBUG: e._B: 15
            //DEBUG: s.Next: 20
            //DEBUG: e._E: 17
  
            refalrts::reset_allocator(vm);
            //TRASH: {REMOVED TILE} </0 & IncName/4 {REMOVED TILE} s.Digit/7 </10 & IncName$1?1/14 e._B/15 s.Digit/19 s.Next/20 e._E/17 >/11 {REMOVED TILE}
            //RESULT: Tile{ [[ } Tile{ AsIs: e.Name/8 } Tile{ HalfReuse: s.Next20 /1 ]] }
            refalrts::reinit_svar( context[1], context[20] );
            refalrts::Iter trash_prev = arg_begin->prev;
            refalrts::use(trash_prev);
            refalrts::Iter res = context[1];
            res = refalrts::splice_evar( res, context[8], context[9] );
            refalrts::splice_to_freelist_open( vm, trash_prev, res );
            return refalrts::cSuccess;
          } while ( refalrts::open_evar_advance( context[15], context[16], context[12], context[13] ) );
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        refalrts::splice_to_freelist(vm, context[10], context[11]);
        continue;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & IncName/4 e.Name/8 '9'/7 >/1
      context[8] = context[5];
      context[9] = context[6];
      if( ! refalrts::char_term( '9', context[7] ) )
        continue;
      // closed e.Name as range 8
      //DEBUG: e.Name: 8
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 AsIs: & IncName/4 AsIs: e.Name/8 HalfReuse: >/7 HalfReuse: '0'/1 ]] }
      refalrts::reinit_close_call(context[7]);
      refalrts::reinit_char(context[1], '0');
      refalrts::push_stack( vm, context[7] );
      refalrts::push_stack( vm, context[0] );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & IncName/4 e.Name/2 >/1
    // closed e.Name as range 2
    //DEBUG: e.Name: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & IncName/4 {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Name/2 } Tile{ HalfReuse: '0'/1 ]] }
    refalrts::reinit_char(context[1], '0');
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_IncName("IncName", COOKIE1_, COOKIE2_, func_IncName);
  
  
  static refalrts::FnResult func_CreateContext(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 8 elems
    refalrts::Iter context[8];
    refalrts::zeros( context, 8 );
    // </0 & CreateContext/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & CreateContext/4 s.new1/5 e.new2/2 >/1
    if( ! refalrts::svar_left( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.new2 as range 2
    do {
      // </0 & CreateContext/4 # MarkupContext/5 e.Context/6 >/1
      context[6] = context[2];
      context[7] = context[3];
      if( ! refalrts::ident_term( identifiers[ident_MarkupContext], context[5] ) )
        continue;
      // closed e.Context as range 6
      //DEBUG: e.Context: 6
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} </0 {REMOVED TILE}
      //RESULT: Tile{ [[ } Tile{ HalfReuse: </4 HalfReuse: & Map@1/5 AsIs: e.Context/6 AsIs: >/1 ]] }
      refalrts::reinit_open_call(context[4]);
      refalrts::reinit_name(context[5], functions[efunc_gen_Map_Z1]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[4] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[4];
      refalrts::splice_to_freelist_open( vm, trash_prev, res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & CreateContext/4 # NoMarkupContext/5 e.Context/2 >/1
    if( ! refalrts::ident_term( identifiers[ident_NoMarkupContext], context[5] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Context as range 2
    //DEBUG: e.Context: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ HalfReuse: </4 HalfReuse: & Map@2/5 AsIs: e.Context/2 AsIs: >/1 ]] }
    refalrts::reinit_open_call(context[4]);
    refalrts::reinit_name(context[5], functions[efunc_gen_Map_Z2]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[4] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[4];
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_CreateContext("CreateContext", 0U, 0U, func_CreateContext);
  
  
  static refalrts::FnResult func_CreateSpecPatternForContext(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 10 elems
    refalrts::Iter context[10];
    refalrts::zeros( context, 10 );
    // </0 & CreateSpecPatternForContext/4 e.Context/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.Context as range 2
    //DEBUG: e.Context: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Map@3/4 AsIs: e.Context/2 AsIs: >/1 } (/5 # Var/6"edyn"/7 )/9 Tile{ ]] }
    refalrts::alloc_open_bracket(vm, context[5]);
    refalrts::alloc_ident(vm, context[6], identifiers[ident_Var]);
    refalrts::alloc_chars(vm, context[7], context[8], "edyn", 4);
    refalrts::alloc_close_bracket(vm, context[9]);
    refalrts::update_name(context[4], functions[efunc_gen_Map_Z3]);
    refalrts::link_brackets( context[5], context[9] );
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[5], context[9] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_CreateSpecPatternForContext("CreateSpecPatternForContext", 0U, 0U, func_CreateSpecPatternForContext);
  
  
  static refalrts::FnResult func_AddSuffix(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 18 elems
    refalrts::Iter context[18];
    refalrts::zeros( context, 18 );
    // </0 & AddSuffix/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & AddSuffix/4 e.new1/2 (/7 e.new2/5 )/8 >/1
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_right( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    // closed e.new1 as range 2
    // closed e.new2 as range 5
    do {
      // </0 & AddSuffix/4 e.Name/13 # SUF/17 e.Suffix/15 (/7 e.NewSuffix/11 )/8 >/1
      context[9] = context[2];
      context[10] = context[3];
      context[11] = context[5];
      context[12] = context[6];
      // closed e.NewSuffix as range 11
      context[13] = 0;
      context[14] = 0;
      refalrts::start_e_loop(vm);
      do {
        context[15] = context[9];
        context[16] = context[10];
        context[17] = refalrts::ident_left( identifiers[ident_SUF], context[15], context[16] );
        if( ! context[17] )
          continue;
        // closed e.Suffix as range 15
        //DEBUG: e.NewSuffix: 11
        //DEBUG: e.Name: 13
        //DEBUG: e.Suffix: 15
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} </0 & AddSuffix/4 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} (/7 {REMOVED TILE} )/8 >/1 {REMOVED TILE}
        //RESULT: Tile{ [[ } Tile{ AsIs: e.Name/13 } Tile{ AsIs: # SUF/17 } Tile{ AsIs: e.Suffix/15 } Tile{ AsIs: e.NewSuffix/11 } Tile{ ]] }
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = arg_end->next;
        res = refalrts::splice_evar( res, context[11], context[12] );
        res = refalrts::splice_evar( res, context[15], context[16] );
        res = refalrts::splice_elem( res, context[17] );
        res = refalrts::splice_evar( res, context[13], context[14] );
        refalrts::splice_to_freelist_open( vm, trash_prev, res );
        return refalrts::cSuccess;
      } while ( refalrts::open_evar_advance( context[13], context[14], context[9], context[10] ) );
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & AddSuffix/4 e.Name/2 (/7 e.NewSuffix/5 )/8 >/1
    // closed e.Name as range 2
    // closed e.NewSuffix as range 5
    //DEBUG: e.Name: 2
    //DEBUG: e.NewSuffix: 5
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & AddSuffix/4 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} )/8 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Name/2 } Tile{ HalfReuse: # SUF/7 } Tile{ AsIs: e.NewSuffix/5 } Tile{ ]] }
    refalrts::reinit_ident(context[7], identifiers[ident_SUF]);
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[5], context[6] );
    res = refalrts::splice_elem( res, context[7] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_AddSuffix("AddSuffix", 0U, 0U, func_AddSuffix);
  
  
  static refalrts::FnResult func_gen_HashName_A2(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 8 elems
    refalrts::Iter context[8];
    refalrts::zeros( context, 8 );
    // </0 & HashName=2/4 s.Buckets/5 s.Hash1/6 s.Hash2/7 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    if( ! refalrts::svar_left( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    if( ! refalrts::svar_left( context[6], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    if( ! refalrts::svar_left( context[7], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    //DEBUG: s.Buckets: 5
    //DEBUG: s.Hash1: 6
    //DEBUG: s.Hash2: 7
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} s.Hash2/7 {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Mod/4 } Tile{ AsIs: s.Hash1/6 } Tile{ AsIs: s.Buckets/5 } Tile{ AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_Mod]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_elem( res, context[5] );
    res = refalrts::splice_elem( res, context[6] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_HashName_A2("HashName=2", COOKIE1_, COOKIE2_, func_gen_HashName_A2);
  
  
  static refalrts::FnResult func_gen_HashName_A1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 11 elems
    refalrts::Iter context[11];
    refalrts::zeros( context, 11 );
    // </0 & HashName=1/4 s.Buckets/5 e.NameAsStr/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    if( ! refalrts::svar_left( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.NameAsStr as range 2
    //DEBUG: s.Buckets: 5
    //DEBUG: e.NameAsStr: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & HashName=2/4 AsIs: s.Buckets/5 } </6 & HashLittle2-Chars/7 3161351997/8 4067679699/9 Tile{ AsIs: e.NameAsStr/2 } >/10 Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[6]);
    refalrts::alloc_name(vm, context[7], functions[efunc_HashLittle2m_Chars]);
    refalrts::alloc_number(vm, context[8], 3161351997UL);
    refalrts::alloc_number(vm, context[9], 4067679699UL);
    refalrts::alloc_close_call(vm, context[10]);
    refalrts::update_name(context[4], functions[efunc_gen_HashName_A2]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[10] );
    refalrts::push_stack( vm, context[6] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_elem( res, context[10] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[6], context[9] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_HashName_A1("HashName=1", COOKIE1_, COOKIE2_, func_gen_HashName_A1);
  
  
  static refalrts::FnResult func_gen_HashName_A1B1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 12 elems
    refalrts::Iter context[12];
    refalrts::zeros( context, 12 );
    // </0 & HashName=1:1/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & HashName=1:1/4 e.Base/7 # SUF/11 e.Suffix/9 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[7] = 0;
      context[8] = 0;
      refalrts::start_e_loop(vm);
      do {
        context[9] = context[5];
        context[10] = context[6];
        context[11] = refalrts::ident_left( identifiers[ident_SUF], context[9], context[10] );
        if( ! context[11] )
          continue;
        // closed e.Suffix as range 9
        //DEBUG: e.Base: 7
        //DEBUG: e.Suffix: 9
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} & HashName=1:1/4 {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ } Tile{ AsIs: e.Base/7 } Tile{ AsIs: </0 } Tile{ HalfReuse: & HashName-Suffix/11 AsIs: e.Suffix/9 AsIs: >/1 ]] }
        refalrts::reinit_name(context[11], functions[efunc_HashNamem_Suffix]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[0] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[11];
        res = refalrts::splice_elem( res, context[0] );
        res = refalrts::splice_evar( res, context[7], context[8] );
        refalrts::splice_to_freelist_open( vm, trash_prev, res );
        return refalrts::cSuccess;
      } while ( refalrts::open_evar_advance( context[7], context[8], context[5], context[6] ) );
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & HashName=1:1/4 e.Name$a/2 >/1
    // closed e.Name$a as range 2
    //DEBUG: e.Name$a: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & HashName=1:1/4 {REMOVED TILE} >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ AsIs: e.Name$a/2 } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    res = refalrts::splice_evar( res, context[2], context[3] );
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_HashName_A1B1("HashName=1:1", COOKIE1_, COOKIE2_, func_gen_HashName_A1B1);
  
  
  static refalrts::FnResult func_HashName(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 9 elems
    refalrts::Iter context[9];
    refalrts::zeros( context, 9 );
    // </0 & HashName/4 e.Name/2 s.Buckets/5 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    if( ! refalrts::svar_right( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    // closed e.Name as range 2
    //DEBUG: s.Buckets: 5
    //DEBUG: e.Name: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & HashName=1/4 } Tile{ AsIs: s.Buckets/5 } </6 & HashName=1:1/7 Tile{ AsIs: e.Name/2 } >/8 Tile{ AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[6]);
    refalrts::alloc_name(vm, context[7], functions[efunc_gen_HashName_A1B1]);
    refalrts::alloc_close_call(vm, context[8]);
    refalrts::update_name(context[4], functions[efunc_gen_HashName_A1]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::push_stack( vm, context[8] );
    refalrts::push_stack( vm, context[6] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_elem( res, context[8] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[6], context[7] );
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_HashName("HashName", 0U, 0U, func_HashName);
  
  
  static refalrts::FnResult func_HashNamem_Suffix(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 12 elems
    refalrts::Iter context[12];
    refalrts::zeros( context, 12 );
    // </0 & HashName-Suffix/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & HashName-Suffix/4 s.SufChar/7 s.SufNo/8 e.Suffix/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      if( ! refalrts::svar_left( context[7], context[5], context[6] ) )
        continue;
      if( ! refalrts::svar_left( context[8], context[5], context[6] ) )
        continue;
      // closed e.Suffix as range 5
      //DEBUG: s.SufChar: 7
      //DEBUG: s.SufNo: 8
      //DEBUG: e.Suffix: 5
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ } Tile{ AsIs: s.SufChar/7 } </9 & Symb/10 Tile{ AsIs: s.SufNo/8 } >/11 Tile{ AsIs: </0 AsIs: & HashName-Suffix/4 } Tile{ AsIs: e.Suffix/5 } Tile{ AsIs: >/1 ]] }
      refalrts::alloc_open_call(vm, context[9]);
      refalrts::alloc_name(vm, context[10], functions[efunc_Symb]);
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[9] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[5], context[6] );
      res = refalrts::splice_evar( res, context[0], context[4] );
      res = refalrts::splice_elem( res, context[11] );
      res = refalrts::splice_elem( res, context[8] );
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_elem( res, context[7] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & HashName-Suffix/4 >/1
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} </0 & HashName-Suffix/4 >/1 {REMOVED TILE}
    //RESULT: Tile{ [[ } Tile{ ]] }
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = arg_end->next;
    refalrts::splice_to_freelist_open( vm, trash_prev, res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_HashNamem_Suffix("HashName-Suffix", COOKIE1_, COOKIE2_, func_HashNamem_Suffix);
  
  
  static refalrts::FnResult func_gen_Apply_Z2(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 15 elems
    refalrts::Iter context[15];
    refalrts::zeros( context, 15 );
    // </0 & Apply@2/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Apply@2/4 t.new1/5 t.new2/7 t.new3/9 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_left( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    context[10] = refalrts::tvar_left( context[9], context[2], context[3] );
    if( ! context[10] )
      return refalrts::cRecognitionImpossible;
    if( ! refalrts::empty_seq( context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    do {
      // </0 & Apply@2/4 s.Fn/5 t.Acc/7 t.Next/9 >/1
      if( ! refalrts::svar_term( context[5], context[5] ) )
        continue;
      //DEBUG: t.Acc: 7
      //DEBUG: t.Next: 9
      //DEBUG: s.Fn: 5
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: s.Fn/5 AsIs: t.Acc/7 AsIs: t.Next/9 HalfReuse: & $table/1 } >/11 Tile{ ]] }
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
      refalrts::reinit_name(context[1], functions[efunc_d_table]);
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_elem( res, context[11] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Apply@2/4 (/5 t.Closure/13 e.Bounded/11 )/6 t.Acc/7 t.Next/9 >/1
      context[11] = 0;
      context[12] = 0;
      if( ! refalrts::brackets_term( context[11], context[12], context[5] ) )
        continue;
      context[14] = refalrts::tvar_left( context[13], context[11], context[12] );
      if( ! context[14] )
        continue;
      // closed e.Bounded as range 11
      //DEBUG: t.Acc: 7
      //DEBUG: t.Next: 9
      //DEBUG: t.Closure: 13
      //DEBUG: e.Bounded: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} (/5 {REMOVED TILE} {REMOVED TILE} )/6 {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply@4/4 } Tile{ AsIs: t.Closure/13 } Tile{ AsIs: e.Bounded/11 } Tile{ AsIs: t.Acc/7 AsIs: t.Next/9 AsIs: >/1 ]] }
      refalrts::update_name(context[4], functions[efunc_gen_Apply_Z4]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[7];
      res = refalrts::splice_evar( res, context[11], context[12] );
      res = refalrts::splice_evar( res, context[13], context[14] );
      refalrts::splice_to_freelist_open( vm, context[4], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Apply@2/4 t.dyn0/5 t.Acc/7 t.Next/9 >/1
    //DEBUG: t.dyn0: 5
    //DEBUG: t.Acc: 7
    //DEBUG: t.Next: 9
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply@0/4 AsIs: t.dyn0/5 AsIs: t.Acc/7 AsIs: t.Next/9 AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_gen_Apply_Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Apply_Z2("Apply@2", COOKIE1_, COOKIE2_, func_gen_Apply_Z2);
  
  
  static refalrts::FnResult func_gen_DoNewVarName_Z1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 28 elems
    refalrts::Iter context[28];
    refalrts::zeros( context, 28 );
    // </0 & DoNewVarName@1/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & DoNewVarName@1/4 (/7 e.new1/5 )/8 (/11 e.new2/9 )/12 e.new3/2 >/1
    context[5] = 0;
    context[6] = 0;
    context[7] = refalrts::brackets_left( context[5], context[6], context[2], context[3] );
    if( ! context[7] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[7], context[8]);
    context[9] = 0;
    context[10] = 0;
    context[11] = refalrts::brackets_left( context[9], context[10], context[2], context[3] );
    if( ! context[11] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[11], context[12]);
    // closed e.new1 as range 5
    // closed e.new2 as range 9
    // closed e.new3 as range 2
    do {
      // </0 & DoNewVarName@1/4 (/7 s.Mode/19 e./13 )/8 (/11 e.Vars-B/15 )/12 e.Vars-E/17 >/1
      context[13] = context[5];
      context[14] = context[6];
      context[15] = context[9];
      context[16] = context[10];
      context[17] = context[2];
      context[18] = context[3];
      // closed e.Vars-B as range 15
      // closed e.Vars-E as range 17
      if( ! refalrts::svar_left( context[19], context[13], context[14] ) )
        continue;
      // closed e. as range 13
      //DEBUG: e.Vars-B: 15
      //DEBUG: e.Vars-E: 17
      //DEBUG: s.Mode: 19
      //DEBUG: e.: 13
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} s.Mode/19 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=2@1/4 HalfReuse: s.Mode19 /7 } (/20 Tile{ AsIs: e./13 } Tile{ AsIs: )/8 AsIs: (/11 AsIs: e.Vars-B/15 AsIs: )/12 } (/21 Tile{ AsIs: e.Vars-E/17 } )/22 </23 & IncName/24 e./13/25 >/27 Tile{ AsIs: >/1 ]] }
      refalrts::alloc_open_bracket(vm, context[20]);
      refalrts::alloc_open_bracket(vm, context[21]);
      refalrts::alloc_close_bracket(vm, context[22]);
      refalrts::alloc_open_call(vm, context[23]);
      refalrts::alloc_name(vm, context[24], functions[efunc_IncName]);
      refalrts::copy_evar(vm, context[25], context[26], context[13], context[14]);
      refalrts::alloc_close_call(vm, context[27]);
      refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A2Z1]);
      refalrts::reinit_svar( context[7], context[19] );
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::push_stack( vm, context[27] );
      refalrts::push_stack( vm, context[23] );
      refalrts::link_brackets( context[21], context[22] );
      refalrts::link_brackets( context[11], context[12] );
      refalrts::link_brackets( context[20], context[8] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[22], context[27] );
      res = refalrts::splice_evar( res, context[17], context[18] );
      res = refalrts::splice_elem( res, context[21] );
      res = refalrts::splice_evar( res, context[8], context[12] );
      res = refalrts::splice_evar( res, context[13], context[14] );
      res = refalrts::splice_elem( res, context[20] );
      refalrts::splice_to_freelist_open( vm, context[7], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & DoNewVarName@1/4 (/7 e.Variable0/13 )/8 (/11 e.Vars-B/15 )/12 e.Vars-E/17 >/1
      context[13] = context[5];
      context[14] = context[6];
      context[15] = context[9];
      context[16] = context[10];
      context[17] = context[2];
      context[18] = context[3];
      // closed e.Variable0 as range 13
      // closed e.Vars-B as range 15
      // closed e.Vars-E as range 17
      //DEBUG: e.Variable0: 13
      //DEBUG: e.Vars-B: 15
      //DEBUG: e.Vars-E: 17
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=1*1/4 AsIs: (/7 } Tile{ AsIs: (/11 } Tile{ AsIs: e.Variable0/13 } Tile{ AsIs: )/12 } Tile{ AsIs: e.Vars-B/15 } Tile{ AsIs: e.Vars-E/17 } Tile{ AsIs: )/8 } e.Variable0/13/19 Tile{ AsIs: >/1 ]] }
      refalrts::copy_evar(vm, context[19], context[20], context[13], context[14]);
      refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A1D1]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::link_brackets( context[7], context[8] );
      refalrts::link_brackets( context[11], context[12] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[19], context[20] );
      res = refalrts::splice_elem( res, context[8] );
      res = refalrts::splice_evar( res, context[17], context[18] );
      res = refalrts::splice_evar( res, context[15], context[16] );
      res = refalrts::splice_elem( res, context[12] );
      res = refalrts::splice_evar( res, context[13], context[14] );
      res = refalrts::splice_elem( res, context[11] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & DoNewVarName@1/4 (/7 e.Variable0/5 )/8 (/11 e.Vars-B/9 )/12 e.Vars-E/2 >/1
    // closed e.Variable0 as range 5
    // closed e.Vars-B as range 9
    // closed e.Vars-E as range 2
    //DEBUG: e.Variable0: 5
    //DEBUG: e.Vars-B: 9
    //DEBUG: e.Vars-E: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName@0/4 AsIs: (/7 } Tile{ AsIs: (/11 } Tile{ AsIs: e.Variable0/5 } Tile{ AsIs: )/12 } Tile{ AsIs: e.Vars-B/9 } Tile{ AsIs: e.Vars-E/2 } Tile{ AsIs: )/8 } e.Variable0/5/13 Tile{ AsIs: >/1 ]] }
    refalrts::copy_evar(vm, context[13], context[14], context[5], context[6]);
    refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[7], context[8] );
    refalrts::link_brackets( context[11], context[12] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[1];
    res = refalrts::splice_evar( res, context[13], context[14] );
    res = refalrts::splice_elem( res, context[8] );
    res = refalrts::splice_evar( res, context[2], context[3] );
    res = refalrts::splice_evar( res, context[9], context[10] );
    res = refalrts::splice_elem( res, context[12] );
    res = refalrts::splice_evar( res, context[5], context[6] );
    res = refalrts::splice_elem( res, context[11] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_DoNewVarName_Z1("DoNewVarName@1", COOKIE1_, COOKIE2_, func_gen_DoNewVarName_Z1);
  
  
  static refalrts::FnResult func_gen_DoNewVarName_B1Z1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 30 elems
    refalrts::Iter context[30];
    refalrts::zeros( context, 30 );
    // </0 & DoNewVarName:1@1/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & DoNewVarName:1@1/4 s.new1/5 (/8 e.new2/6 )/9 e.new3/2 >/1
    if( ! refalrts::svar_left( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    context[6] = 0;
    context[7] = 0;
    context[8] = refalrts::brackets_left( context[6], context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[8], context[9]);
    // closed e.new2 as range 6
    // closed e.new3 as range 2
    do {
      // </0 & DoNewVarName:1@1/4 s.Mode/5 (/8 e.NewIndex/10 )/9 e.Vars-B/14 (/20 s.Mode/22 e.NewIndex/23 )/21 e.Vars-E/16 >/1
      context[10] = context[6];
      context[11] = context[7];
      context[12] = context[2];
      context[13] = context[3];
      // closed e.NewIndex as range 10
      context[14] = 0;
      context[15] = 0;
      refalrts::start_e_loop(vm);
      do {
        context[16] = context[12];
        context[17] = context[13];
        context[18] = 0;
        context[19] = 0;
        context[20] = refalrts::brackets_left( context[18], context[19], context[16], context[17] );
        if( ! context[20] )
          continue;
        refalrts::bracket_pointers(context[20], context[21]);
        if( ! refalrts::repeated_stvar_left( vm, context[22], context[5], context[18], context[19] ) )
          continue;
        if( ! refalrts::repeated_evar_left( vm, context[23], context[24], context[10], context[11], context[18], context[19] ) )
          continue;
        if( ! refalrts::empty_seq( context[18], context[19] ) )
          continue;
        // closed e.Vars-E as range 16
        //DEBUG: s.Mode: 5
        //DEBUG: e.NewIndex: 10
        //DEBUG: e.Vars-B: 14
        //DEBUG: e.Vars-E: 16
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} s.Mode/22 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=2@1/4 AsIs: s.Mode/5 AsIs: (/8 AsIs: e.NewIndex/10 AsIs: )/9 } Tile{ AsIs: (/20 } Tile{ AsIs: e.Vars-B/14 } Tile{ AsIs: )/21 } (/25 Tile{ AsIs: e.Vars-E/16 } )/26 </27 & IncName/28 Tile{ AsIs: e.NewIndex/23 } >/29 Tile{ AsIs: >/1 ]] }
        refalrts::alloc_open_bracket(vm, context[25]);
        refalrts::alloc_close_bracket(vm, context[26]);
        refalrts::alloc_open_call(vm, context[27]);
        refalrts::alloc_name(vm, context[28], functions[efunc_IncName]);
        refalrts::alloc_close_call(vm, context[29]);
        refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A2Z1]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[0] );
        refalrts::push_stack( vm, context[29] );
        refalrts::push_stack( vm, context[27] );
        refalrts::link_brackets( context[25], context[26] );
        refalrts::link_brackets( context[20], context[21] );
        refalrts::link_brackets( context[8], context[9] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_elem( res, context[29] );
        res = refalrts::splice_evar( res, context[23], context[24] );
        res = refalrts::splice_evar( res, context[26], context[28] );
        res = refalrts::splice_evar( res, context[16], context[17] );
        res = refalrts::splice_elem( res, context[25] );
        res = refalrts::splice_elem( res, context[21] );
        res = refalrts::splice_evar( res, context[14], context[15] );
        res = refalrts::splice_elem( res, context[20] );
        refalrts::splice_to_freelist_open( vm, context[9], res );
        return refalrts::cSuccess;
      } while ( refalrts::open_evar_advance( context[14], context[15], context[12], context[13] ) );
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & DoNewVarName:1@1/4 s.Mode/5 (/8 e.NewIndex/10 )/9 e.Vars$a/12 >/1
      context[10] = context[6];
      context[11] = context[7];
      context[12] = context[2];
      context[13] = context[3];
      // closed e.NewIndex as range 10
      // closed e.Vars$a as range 12
      //DEBUG: s.Mode: 5
      //DEBUG: e.NewIndex: 10
      //DEBUG: e.Vars$a: 12
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ HalfReuse: (/0 HalfReuse: (/4 } Tile{ HalfReuse: s.Mode5 /8 AsIs: e.NewIndex/10 AsIs: )/9 AsIs: e.Vars$a/12 HalfReuse: )/1 } Tile{ AsIs: s.Mode/5 } e.NewIndex/10/14 Tile{ ]] }
      refalrts::copy_evar(vm, context[14], context[15], context[10], context[11]);
      refalrts::reinit_open_bracket(context[0]);
      refalrts::reinit_open_bracket(context[4]);
      refalrts::reinit_svar( context[8], context[5] );
      refalrts::reinit_close_bracket(context[1]);
      refalrts::link_brackets( context[0], context[1] );
      refalrts::link_brackets( context[4], context[9] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_evar( res, context[14], context[15] );
      res = refalrts::splice_elem( res, context[5] );
      res = refalrts::splice_evar( res, context[8], context[1] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & DoNewVarName:1@1/4 s.Mode/5 (/8 e.NewIndex/6 )/9 e.dyn/2 >/1
    // closed e.NewIndex as range 6
    // closed e.dyn as range 2
    //DEBUG: s.Mode: 5
    //DEBUG: e.NewIndex: 6
    //DEBUG: e.dyn: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} s.Mode/5 {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName:1@0/4 } (/10 Tile{ HalfReuse: s.Mode5 /8 AsIs: e.NewIndex/6 AsIs: )/9 AsIs: e.dyn/2 AsIs: >/1 ]] }
    refalrts::alloc_open_bracket(vm, context[10]);
    refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_B1Z0]);
    refalrts::reinit_svar( context[8], context[5] );
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[10], context[9] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[8];
    res = refalrts::splice_elem( res, context[10] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_DoNewVarName_B1Z1("DoNewVarName:1@1", COOKIE1_, COOKIE2_, func_gen_DoNewVarName_B1Z1);
  
  
  static refalrts::FnResult func_gen_Map_Z1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 30 elems
    refalrts::Iter context[30];
    refalrts::zeros( context, 30 );
    // </0 & Map@1/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & Map@1/4 t.new1/7 e.new2/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[8] = refalrts::tvar_left( context[7], context[5], context[6] );
      if( ! context[8] )
        continue;
      // closed e.new2 as range 5
      do {
        // </0 & Map@1/4 (/7 s.new3/13 e.new4/11 )/8 e.new5/9 >/1
        context[9] = context[5];
        context[10] = context[6];
        context[11] = 0;
        context[12] = 0;
        if( ! refalrts::brackets_term( context[11], context[12], context[7] ) )
          continue;
        // closed e.new5 as range 9
        if( ! refalrts::svar_left( context[13], context[11], context[12] ) )
          continue;
        // closed e.new4 as range 11
        do {
          // </0 & Map@1/4 (/7 'e'/13 e.0/14 )/8 e.Tail/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::char_term( 'e', context[13] ) )
            continue;
          // closed e.0 as range 14
          // closed e.Tail as range 16
          //DEBUG: e.0: 14
          //DEBUG: e.Tail: 16
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ } (/18 Tile{ HalfReuse: # Symbol/0 HalfReuse: # Identifier/4 HalfReuse: # VAR/7 AsIs: 'e'/13 AsIs: e.0/14 AsIs: )/8 } (/19 # Brackets/20 (/21 # Var/22 'e'/23 e.0/14/24 )/26 )/27 </28 & Map@1/29 Tile{ AsIs: e.Tail/16 } Tile{ AsIs: >/1 ]] }
          refalrts::alloc_open_bracket(vm, context[18]);
          refalrts::alloc_open_bracket(vm, context[19]);
          refalrts::alloc_ident(vm, context[20], identifiers[ident_Brackets]);
          refalrts::alloc_open_bracket(vm, context[21]);
          refalrts::alloc_ident(vm, context[22], identifiers[ident_Var]);
          refalrts::alloc_char(vm, context[23], 'e');
          refalrts::copy_evar(vm, context[24], context[25], context[14], context[15]);
          refalrts::alloc_close_bracket(vm, context[26]);
          refalrts::alloc_close_bracket(vm, context[27]);
          refalrts::alloc_open_call(vm, context[28]);
          refalrts::alloc_name(vm, context[29], functions[efunc_gen_Map_Z1]);
          refalrts::reinit_ident(context[0], identifiers[ident_Symbol]);
          refalrts::reinit_ident(context[4], identifiers[ident_Identifier]);
          refalrts::reinit_ident(context[7], identifiers[ident_VAR]);
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[28] );
          refalrts::link_brackets( context[19], context[27] );
          refalrts::link_brackets( context[21], context[26] );
          refalrts::link_brackets( context[18], context[8] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[19], context[29] );
          res = refalrts::splice_evar( res, context[0], context[8] );
          res = refalrts::splice_elem( res, context[18] );
          refalrts::use( res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        // </0 & Map@1/4 (/7 s.Mode/13 e.0/14 )/8 e.Tail/16 >/1
        context[14] = context[11];
        context[15] = context[12];
        context[16] = context[9];
        context[17] = context[10];
        // closed e.0 as range 14
        // closed e.Tail as range 16
        //DEBUG: s.Mode: 13
        //DEBUG: e.0: 14
        //DEBUG: e.Tail: 16
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ } (/18 Tile{ HalfReuse: # Symbol/0 HalfReuse: # Identifier/4 HalfReuse: # VAR/7 AsIs: s.Mode/13 AsIs: e.0/14 AsIs: )/8 } (/19 # Var/20 s.Mode/13/21 e.0/14/22 )/24 </25 & Map@1/26 Tile{ AsIs: e.Tail/16 } Tile{ AsIs: >/1 ]] }
        refalrts::alloc_open_bracket(vm, context[18]);
        refalrts::alloc_open_bracket(vm, context[19]);
        refalrts::alloc_ident(vm, context[20], identifiers[ident_Var]);
        refalrts::copy_stvar(vm, context[21], context[13]);
        refalrts::copy_evar(vm, context[22], context[23], context[14], context[15]);
        refalrts::alloc_close_bracket(vm, context[24]);
        refalrts::alloc_open_call(vm, context[25]);
        refalrts::alloc_name(vm, context[26], functions[efunc_gen_Map_Z1]);
        refalrts::reinit_ident(context[0], identifiers[ident_Symbol]);
        refalrts::reinit_ident(context[4], identifiers[ident_Identifier]);
        refalrts::reinit_ident(context[7], identifiers[ident_VAR]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[25] );
        refalrts::link_brackets( context[19], context[24] );
        refalrts::link_brackets( context[18], context[8] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[16], context[17] );
        res = refalrts::splice_evar( res, context[19], context[26] );
        res = refalrts::splice_evar( res, context[0], context[8] );
        res = refalrts::splice_elem( res, context[18] );
        refalrts::use( res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & Map@1/4 t.Next/7 e.Tail/9 >/1
      context[9] = context[5];
      context[10] = context[6];
      // closed e.Tail as range 9
      //DEBUG: t.Next: 7
      //DEBUG: e.Tail: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & CreateContext$1\1*2/4 AsIs: t.Next/7 } >/11 </12 & Map@1/13 Tile{ AsIs: e.Tail/9 } Tile{ AsIs: >/1 ]] }
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::alloc_open_call(vm, context[12]);
      refalrts::alloc_name(vm, context[13], functions[efunc_gen_Map_Z1]);
      refalrts::update_name(context[4], functions[efunc_gen_CreateContext_S1L1D2]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[12] );
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_evar( res, context[11], context[13] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Map@1/4 >/1
      if( ! refalrts::empty_seq( context[2], context[3] ) )
        continue;
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} </0 & Map@1/4 >/1 {REMOVED TILE}
      //RESULT: Tile{ [[ } Tile{ ]] }
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      refalrts::splice_to_freelist_open( vm, trash_prev, res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Map@1/4 e.items/2 >/1
    // closed e.items as range 2
    //DEBUG: e.items: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 Tile{ HalfReuse: & Map@0/0 Reuse: & CreateContext$1\1@0/4 AsIs: e.items/2 AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::reinit_name(context[0], functions[efunc_gen_Map_Z0]);
    refalrts::update_name(context[4], functions[efunc_gen_CreateContext_S1L1Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[0];
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Map_Z1("Map@1", COOKIE1_, COOKIE2_, func_gen_Map_Z1);
  
  
  static refalrts::FnResult func_gen_Map_Z2(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 22 elems
    refalrts::Iter context[22];
    refalrts::zeros( context, 22 );
    // </0 & Map@2/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & Map@2/4 t.new1/7 e.new2/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[8] = refalrts::tvar_left( context[7], context[5], context[6] );
      if( ! context[8] )
        continue;
      // closed e.new2 as range 5
      do {
        // </0 & Map@2/4 (/7 s.new3/13 e.new4/11 )/8 e.new5/9 >/1
        context[9] = context[5];
        context[10] = context[6];
        context[11] = 0;
        context[12] = 0;
        if( ! refalrts::brackets_term( context[11], context[12], context[7] ) )
          continue;
        // closed e.new5 as range 9
        if( ! refalrts::svar_left( context[13], context[11], context[12] ) )
          continue;
        // closed e.new4 as range 11
        do {
          // </0 & Map@2/4 (/7 'e'/13 e.0/14 )/8 e.Tail/16 >/1
          context[14] = context[11];
          context[15] = context[12];
          context[16] = context[9];
          context[17] = context[10];
          if( ! refalrts::char_term( 'e', context[13] ) )
            continue;
          // closed e.0 as range 14
          // closed e.Tail as range 16
          //DEBUG: e.0: 14
          //DEBUG: e.Tail: 16
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ } (/18 Tile{ HalfReuse: # Brackets/0 HalfReuse: (/4 HalfReuse: # Var/7 AsIs: 'e'/13 AsIs: e.0/14 AsIs: )/8 } )/19 </20 & Map@2/21 Tile{ AsIs: e.Tail/16 } Tile{ AsIs: >/1 ]] }
          refalrts::alloc_open_bracket(vm, context[18]);
          refalrts::alloc_close_bracket(vm, context[19]);
          refalrts::alloc_open_call(vm, context[20]);
          refalrts::alloc_name(vm, context[21], functions[efunc_gen_Map_Z2]);
          refalrts::reinit_ident(context[0], identifiers[ident_Brackets]);
          refalrts::reinit_open_bracket(context[4]);
          refalrts::reinit_ident(context[7], identifiers[ident_Var]);
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[20] );
          refalrts::link_brackets( context[18], context[19] );
          refalrts::link_brackets( context[4], context[8] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[1];
          res = refalrts::splice_evar( res, context[16], context[17] );
          res = refalrts::splice_evar( res, context[19], context[21] );
          res = refalrts::splice_evar( res, context[0], context[8] );
          res = refalrts::splice_elem( res, context[18] );
          refalrts::use( res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        // </0 & Map@2/4 (/7 s.Mode/13 e.0/14 )/8 e.Tail/16 >/1
        context[14] = context[11];
        context[15] = context[12];
        context[16] = context[9];
        context[17] = context[10];
        // closed e.0 as range 14
        // closed e.Tail as range 16
        //DEBUG: s.Mode: 13
        //DEBUG: e.0: 14
        //DEBUG: e.Tail: 16
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ } Tile{ HalfReuse: (/4 HalfReuse: # Var/7 AsIs: s.Mode/13 AsIs: e.0/14 AsIs: )/8 } Tile{ AsIs: </0 } & Map@2/18 Tile{ AsIs: e.Tail/16 } Tile{ AsIs: >/1 ]] }
        refalrts::alloc_name(vm, context[18], functions[efunc_gen_Map_Z2]);
        refalrts::reinit_open_bracket(context[4]);
        refalrts::reinit_ident(context[7], identifiers[ident_Var]);
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[0] );
        refalrts::link_brackets( context[4], context[8] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[16], context[17] );
        res = refalrts::splice_elem( res, context[18] );
        res = refalrts::splice_elem( res, context[0] );
        res = refalrts::splice_evar( res, context[4], context[8] );
        refalrts::use( res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & Map@2/4 t.Next/7 e.Tail/9 >/1
      context[9] = context[5];
      context[10] = context[6];
      // closed e.Tail as range 9
      //DEBUG: t.Next: 7
      //DEBUG: e.Tail: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & CreateContext$2\1*2/4 AsIs: t.Next/7 } >/11 </12 & Map@2/13 Tile{ AsIs: e.Tail/9 } Tile{ AsIs: >/1 ]] }
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::alloc_open_call(vm, context[12]);
      refalrts::alloc_name(vm, context[13], functions[efunc_gen_Map_Z2]);
      refalrts::update_name(context[4], functions[efunc_gen_CreateContext_S2L1D2]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[12] );
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_evar( res, context[11], context[13] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Map@2/4 >/1
      if( ! refalrts::empty_seq( context[2], context[3] ) )
        continue;
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} </0 & Map@2/4 >/1 {REMOVED TILE}
      //RESULT: Tile{ [[ } Tile{ ]] }
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      refalrts::splice_to_freelist_open( vm, trash_prev, res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Map@2/4 e.items/2 >/1
    // closed e.items as range 2
    //DEBUG: e.items: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 Tile{ HalfReuse: & Map@0/0 Reuse: & CreateContext$2\1@0/4 AsIs: e.items/2 AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::reinit_name(context[0], functions[efunc_gen_Map_Z0]);
    refalrts::update_name(context[4], functions[efunc_gen_CreateContext_S2L1Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[0];
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Map_Z2("Map@2", COOKIE1_, COOKIE2_, func_gen_Map_Z2);
  
  
  static refalrts::FnResult func_gen_Map_Z3(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 27 elems
    refalrts::Iter context[27];
    refalrts::zeros( context, 27 );
    // </0 & Map@3/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    do {
      // </0 & Map@3/4 t.new1/7 e.new2/5 >/1
      context[5] = context[2];
      context[6] = context[3];
      context[8] = refalrts::tvar_left( context[7], context[5], context[6] );
      if( ! context[8] )
        continue;
      // closed e.new2 as range 5
      do {
        // </0 & Map@3/4 (/7 s.new3/13 t.new4/14 e.new5/11 )/8 e.new6/9 >/1
        context[9] = context[5];
        context[10] = context[6];
        context[11] = 0;
        context[12] = 0;
        if( ! refalrts::brackets_term( context[11], context[12], context[7] ) )
          continue;
        // closed e.new6 as range 9
        if( ! refalrts::svar_left( context[13], context[11], context[12] ) )
          continue;
        context[15] = refalrts::tvar_left( context[14], context[11], context[12] );
        if( ! context[15] )
          continue;
        // closed e.new5 as range 11
        do {
          // </0 & Map@3/4 (/7 s.new7/13 s.new8/14 e.new9/16 )/8 e.new10/18 >/1
          context[16] = context[11];
          context[17] = context[12];
          context[18] = context[9];
          context[19] = context[10];
          if( ! refalrts::svar_term( context[14], context[14] ) )
            continue;
          // closed e.new9 as range 16
          // closed e.new10 as range 18
          do {
            // </0 & Map@3/4 (/7 # Symbol/13 # Identifier/14 e.1/20 )/8 e.Tail/22 >/1
            context[20] = context[16];
            context[21] = context[17];
            context[22] = context[18];
            context[23] = context[19];
            if( ! refalrts::ident_term( identifiers[ident_Symbol], context[13] ) )
              continue;
            if( ! refalrts::ident_term( identifiers[ident_Identifier], context[14] ) )
              continue;
            // closed e.1 as range 20
            // closed e.Tail as range 22
            //DEBUG: e.1: 20
            //DEBUG: e.Tail: 22
  
            refalrts::reset_allocator(vm);
            //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
            //RESULT: Tile{ [[ } Tile{ AsIs: (/7 AsIs: # Symbol/13 AsIs: # Identifier/14 AsIs: e.1/20 AsIs: )/8 } Tile{ AsIs: </0 AsIs: & Map@3/4 } Tile{ AsIs: e.Tail/22 } Tile{ AsIs: >/1 ]] }
            refalrts::push_stack( vm, context[1] );
            refalrts::push_stack( vm, context[0] );
            refalrts::link_brackets( context[7], context[8] );
            refalrts::Iter trash_prev = arg_begin->prev;
            refalrts::use(trash_prev);
            refalrts::Iter res = context[1];
            res = refalrts::splice_evar( res, context[22], context[23] );
            res = refalrts::splice_evar( res, context[0], context[4] );
            res = refalrts::splice_evar( res, context[7], context[8] );
            refalrts::use( res );
            return refalrts::cSuccess;
          } while ( 0 );
          refalrts::stop_sentence(vm);
  
          // </0 & Map@3/4 (/7 # Var/13 s.Mode/14 e.1/20 )/8 e.Tail/22 >/1
          context[20] = context[16];
          context[21] = context[17];
          context[22] = context[18];
          context[23] = context[19];
          if( ! refalrts::ident_term( identifiers[ident_Var], context[13] ) )
            continue;
          // closed e.1 as range 20
          // closed e.Tail as range 22
          //DEBUG: s.Mode: 14
          //DEBUG: e.1: 20
          //DEBUG: e.Tail: 22
  
          refalrts::reset_allocator(vm);
          //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
          //RESULT: Tile{ [[ } Tile{ AsIs: (/7 AsIs: # Var/13 AsIs: s.Mode/14 } Tile{ HalfReuse: 'S'/4 }"TAT_"/24 Tile{ AsIs: e.1/20 } )/26 Tile{ AsIs: </0 } Tile{ HalfReuse: & Map@3/8 AsIs: e.Tail/22 AsIs: >/1 ]] }
          refalrts::alloc_chars(vm, context[24], context[25], "TAT_", 4);
          refalrts::alloc_close_bracket(vm, context[26]);
          refalrts::reinit_char(context[4], 'S');
          refalrts::reinit_name(context[8], functions[efunc_gen_Map_Z3]);
          refalrts::push_stack( vm, context[1] );
          refalrts::push_stack( vm, context[0] );
          refalrts::link_brackets( context[7], context[26] );
          refalrts::Iter trash_prev = arg_begin->prev;
          refalrts::use(trash_prev);
          refalrts::Iter res = context[8];
          res = refalrts::splice_elem( res, context[0] );
          res = refalrts::splice_elem( res, context[26] );
          res = refalrts::splice_evar( res, context[20], context[21] );
          res = refalrts::splice_evar( res, context[24], context[25] );
          res = refalrts::splice_elem( res, context[4] );
          res = refalrts::splice_evar( res, context[7], context[14] );
          refalrts::use( res );
          return refalrts::cSuccess;
        } while ( 0 );
        refalrts::stop_sentence(vm);
  
        // </0 & Map@3/4 (/7 # Brackets/13 (/14 # Var/20 'e'/21 e.4/18 )/15 )/8 e.Tail/16 >/1
        context[16] = context[9];
        context[17] = context[10];
        context[18] = 0;
        context[19] = 0;
        if( ! refalrts::brackets_term( context[18], context[19], context[14] ) )
          continue;
        if( ! refalrts::ident_term( identifiers[ident_Brackets], context[13] ) )
          continue;
        context[20] = refalrts::ident_left( identifiers[ident_Var], context[18], context[19] );
        if( ! context[20] )
          continue;
        context[21] = refalrts::char_left( 'e', context[18], context[19] );
        if( ! context[21] )
          continue;
        if( ! refalrts::empty_seq( context[11], context[12] ) )
          continue;
        // closed e.4 as range 18
        // closed e.Tail as range 16
        //DEBUG: e.4: 18
        //DEBUG: e.Tail: 16
  
        refalrts::reset_allocator(vm);
        //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
        //RESULT: Tile{ [[ } (/22 # Brackets/23 (/24 Tile{ HalfReuse: # Var/0 HalfReuse: 'e'/4 HalfReuse: 'S'/7 HalfReuse: 'T'/13 HalfReuse: 'A'/14 HalfReuse: 'T'/20 Reuse: '_'/21 AsIs: e.4/18 AsIs: )/15 AsIs: )/8 } </25 & Map@3/26 Tile{ AsIs: e.Tail/16 } Tile{ AsIs: >/1 ]] }
        refalrts::alloc_open_bracket(vm, context[22]);
        refalrts::alloc_ident(vm, context[23], identifiers[ident_Brackets]);
        refalrts::alloc_open_bracket(vm, context[24]);
        refalrts::alloc_open_call(vm, context[25]);
        refalrts::alloc_name(vm, context[26], functions[efunc_gen_Map_Z3]);
        refalrts::reinit_ident(context[0], identifiers[ident_Var]);
        refalrts::reinit_char(context[4], 'e');
        refalrts::reinit_char(context[7], 'S');
        refalrts::reinit_char(context[13], 'T');
        refalrts::reinit_char(context[14], 'A');
        refalrts::reinit_char(context[20], 'T');
        refalrts::update_char(context[21], '_');
        refalrts::push_stack( vm, context[1] );
        refalrts::push_stack( vm, context[25] );
        refalrts::link_brackets( context[22], context[8] );
        refalrts::link_brackets( context[24], context[15] );
        refalrts::Iter trash_prev = arg_begin->prev;
        refalrts::use(trash_prev);
        refalrts::Iter res = context[1];
        res = refalrts::splice_evar( res, context[16], context[17] );
        res = refalrts::splice_evar( res, context[25], context[26] );
        res = refalrts::splice_evar( res, context[0], context[8] );
        res = refalrts::splice_evar( res, context[22], context[24] );
        refalrts::use( res );
        return refalrts::cSuccess;
      } while ( 0 );
      refalrts::stop_sentence(vm);
  
      // </0 & Map@3/4 t.Next/7 e.Tail/9 >/1
      context[9] = context[5];
      context[10] = context[6];
      // closed e.Tail as range 9
      //DEBUG: t.Next: 7
      //DEBUG: e.Tail: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & CreateSpecPatternForContext\1*3/4 AsIs: t.Next/7 } >/11 </12 & Map@3/13 Tile{ AsIs: e.Tail/9 } Tile{ AsIs: >/1 ]] }
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::alloc_open_call(vm, context[12]);
      refalrts::alloc_name(vm, context[13], functions[efunc_gen_Map_Z3]);
      refalrts::update_name(context[4], functions[efunc_gen_CreateSpecPatternForContext_L1D3]);
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[12] );
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_evar( res, context[11], context[13] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Map@3/4 >/1
      if( ! refalrts::empty_seq( context[2], context[3] ) )
        continue;
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} </0 & Map@3/4 >/1 {REMOVED TILE}
      //RESULT: Tile{ [[ } Tile{ ]] }
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      refalrts::splice_to_freelist_open( vm, trash_prev, res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Map@3/4 e.items/2 >/1
    // closed e.items as range 2
    //DEBUG: e.items: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ } </5 Tile{ HalfReuse: & Map@0/0 Reuse: & CreateSpecPatternForContext\1@0/4 AsIs: e.items/2 AsIs: >/1 ]] }
    refalrts::alloc_open_call(vm, context[5]);
    refalrts::reinit_name(context[0], functions[efunc_gen_Map_Z0]);
    refalrts::update_name(context[4], functions[efunc_gen_CreateSpecPatternForContext_L1Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[5] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[0];
    res = refalrts::splice_elem( res, context[5] );
    refalrts::use( res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Map_Z3("Map@3", COOKIE1_, COOKIE2_, func_gen_Map_Z3);
  
  
  static refalrts::FnResult func_gen_Apply_Z3(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 15 elems
    refalrts::Iter context[15];
    refalrts::zeros( context, 15 );
    // </0 & Apply@3/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Apply@3/4 t.new1/5 e.new2/2 t.new3/7 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_right( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    // closed e.new2 as range 2
    do {
      // </0 & Apply@3/4 s.Fn/5 e.X/9 t.X/7 >/1
      context[9] = context[2];
      context[10] = context[3];
      if( ! refalrts::svar_term( context[5], context[5] ) )
        continue;
      // closed e.X as range 9
      //DEBUG: t.X: 7
      //DEBUG: s.Fn: 5
      //DEBUG: e.X: 9
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: s.Fn/5 AsIs: e.X/9 AsIs: t.X/7 HalfReuse: & $table/1 } >/11 Tile{ ]] }
      refalrts::alloc_close_call(vm, context[11]);
      refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
      refalrts::reinit_name(context[1], functions[efunc_d_table]);
      refalrts::push_stack( vm, context[11] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_elem( res, context[11] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Apply@3/4 (/5 t.Closure/13 e.Bounded/11 )/6 e.X/9 t.X/7 >/1
      context[9] = context[2];
      context[10] = context[3];
      context[11] = 0;
      context[12] = 0;
      if( ! refalrts::brackets_term( context[11], context[12], context[5] ) )
        continue;
      // closed e.X as range 9
      context[14] = refalrts::tvar_left( context[13], context[11], context[12] );
      if( ! context[14] )
        continue;
      // closed e.Bounded as range 11
      //DEBUG: t.X: 7
      //DEBUG: e.X: 9
      //DEBUG: t.Closure: 13
      //DEBUG: e.Bounded: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} (/5 {REMOVED TILE} {REMOVED TILE} )/6 {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 AsIs: & Apply@3/4 } Tile{ AsIs: t.Closure/13 } Tile{ AsIs: e.Bounded/11 } Tile{ AsIs: e.X/9 } Tile{ AsIs: t.X/7 AsIs: >/1 ]] }
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[7];
      res = refalrts::splice_evar( res, context[9], context[10] );
      res = refalrts::splice_evar( res, context[11], context[12] );
      res = refalrts::splice_evar( res, context[13], context[14] );
      refalrts::splice_to_freelist_open( vm, context[4], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Apply@3/4 t.dyn0/5 e.X/2 t.X/7 >/1
    // closed e.X as range 2
    //DEBUG: t.dyn0: 5
    //DEBUG: t.X: 7
    //DEBUG: e.X: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply@0/4 AsIs: t.dyn0/5 AsIs: e.X/2 AsIs: t.X/7 AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_gen_Apply_Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Apply_Z3("Apply@3", COOKIE1_, COOKIE2_, func_gen_Apply_Z3);
  
  
  static refalrts::FnResult func_gen_Apply_Z4(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 17 elems
    refalrts::Iter context[17];
    refalrts::zeros( context, 17 );
    // </0 & Apply@4/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & Apply@4/4 t.new1/5 e.new2/2 t.new3/9 t.new4/7 >/1
    context[6] = refalrts::tvar_left( context[5], context[2], context[3] );
    if( ! context[6] )
      return refalrts::cRecognitionImpossible;
    context[8] = refalrts::tvar_right( context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    context[10] = refalrts::tvar_right( context[9], context[2], context[3] );
    if( ! context[10] )
      return refalrts::cRecognitionImpossible;
    // closed e.new2 as range 2
    do {
      // </0 & Apply@4/4 s.Fn/5 e.X/11 t.X/9 t.X0/7 >/1
      context[11] = context[2];
      context[12] = context[3];
      if( ! refalrts::svar_term( context[5], context[5] ) )
        continue;
      // closed e.X as range 11
      //DEBUG: t.X: 9
      //DEBUG: t.X0: 7
      //DEBUG: s.Fn: 5
      //DEBUG: e.X: 11
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & __Meta_Mu/4 AsIs: s.Fn/5 AsIs: e.X/11 AsIs: t.X/9 AsIs: t.X0/7 HalfReuse: & $table/1 } >/13 Tile{ ]] }
      refalrts::alloc_close_call(vm, context[13]);
      refalrts::update_name(context[4], functions[efunc_u_u_Metau_Mu]);
      refalrts::reinit_name(context[1], functions[efunc_d_table]);
      refalrts::push_stack( vm, context[13] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = arg_end->next;
      res = refalrts::splice_elem( res, context[13] );
      refalrts::use( res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    do {
      // </0 & Apply@4/4 (/5 t.Closure/15 e.Bounded/13 )/6 e.X/11 t.X/9 t.X0/7 >/1
      context[11] = context[2];
      context[12] = context[3];
      context[13] = 0;
      context[14] = 0;
      if( ! refalrts::brackets_term( context[13], context[14], context[5] ) )
        continue;
      // closed e.X as range 11
      context[16] = refalrts::tvar_left( context[15], context[13], context[14] );
      if( ! context[16] )
        continue;
      // closed e.Bounded as range 13
      //DEBUG: t.X: 9
      //DEBUG: t.X0: 7
      //DEBUG: e.X: 11
      //DEBUG: t.Closure: 15
      //DEBUG: e.Bounded: 13
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} (/5 {REMOVED TILE} {REMOVED TILE} )/6 {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 AsIs: & Apply@4/4 } Tile{ AsIs: t.Closure/15 } Tile{ AsIs: e.Bounded/13 } Tile{ AsIs: e.X/11 } Tile{ AsIs: t.X/9 AsIs: t.X0/7 AsIs: >/1 ]] }
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[9];
      res = refalrts::splice_evar( res, context[11], context[12] );
      res = refalrts::splice_evar( res, context[13], context[14] );
      res = refalrts::splice_evar( res, context[15], context[16] );
      refalrts::splice_to_freelist_open( vm, context[4], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & Apply@4/4 t.dyn0/5 e.X/2 t.X/9 t.X0/7 >/1
    // closed e.X as range 2
    //DEBUG: t.dyn0: 5
    //DEBUG: t.X: 9
    //DEBUG: t.X0: 7
    //DEBUG: e.X: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & Apply@0/4 AsIs: t.dyn0/5 AsIs: e.X/2 AsIs: t.X/9 AsIs: t.X0/7 AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_gen_Apply_Z0]);
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_Apply_Z4("Apply@4", COOKIE1_, COOKIE2_, func_gen_Apply_Z4);
  
  
  static refalrts::FnResult func_gen_DoNewVarName_A2Z1(refalrts::VM *vm, refalrts::Iter arg_begin, refalrts::Iter arg_end) {
    (void) vm;
    refalrts::this_is_generated_function(vm);
    refalrts::RefalFunction **functions;
    const refalrts::RefalIdentifier *identifiers;
    refalrts::load_constants(arg_begin, &functions, &identifiers);
    // issue here memory for vars with 26 elems
    refalrts::Iter context[26];
    refalrts::zeros( context, 26 );
    // </0 & DoNewVarName=2@1/4 e.new/2 >/1
    context[0] = arg_begin;
    context[1] = arg_end;
    context[2] = 0;
    context[3] = 0;
    context[4] = refalrts::call_left( context[2], context[3], context[0], context[1] );
    // closed e.new as range 2
    // </0 & DoNewVarName=2@1/4 s.new1/5 (/8 e.new2/6 )/9 (/12 e.new3/10 )/13 (/16 e.new4/14 )/17 e.new5/2 >/1
    if( ! refalrts::svar_left( context[5], context[2], context[3] ) )
      return refalrts::cRecognitionImpossible;
    context[6] = 0;
    context[7] = 0;
    context[8] = refalrts::brackets_left( context[6], context[7], context[2], context[3] );
    if( ! context[8] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[8], context[9]);
    context[10] = 0;
    context[11] = 0;
    context[12] = refalrts::brackets_left( context[10], context[11], context[2], context[3] );
    if( ! context[12] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[12], context[13]);
    context[14] = 0;
    context[15] = 0;
    context[16] = refalrts::brackets_left( context[14], context[15], context[2], context[3] );
    if( ! context[16] )
      return refalrts::cRecognitionImpossible;
    refalrts::bracket_pointers(context[16], context[17]);
    // closed e.new2 as range 6
    // closed e.new3 as range 10
    // closed e.new4 as range 14
    // closed e.new5 as range 2
    do {
      // </0 & DoNewVarName=2@1/4 s.Mode0/5 (/8 e./18 )/9 (/12 e.Vars-B/20 )/13 (/16 e.Vars-E/22 )/17 e.NewIndex/24 >/1
      context[18] = context[6];
      context[19] = context[7];
      context[20] = context[10];
      context[21] = context[11];
      context[22] = context[14];
      context[23] = context[15];
      context[24] = context[2];
      context[25] = context[3];
      // closed e. as range 18
      // closed e.Vars-B as range 20
      // closed e.Vars-E as range 22
      // closed e.NewIndex as range 24
      //DEBUG: s.Mode0: 5
      //DEBUG: e.: 18
      //DEBUG: e.Vars-B: 20
      //DEBUG: e.Vars-E: 22
      //DEBUG: e.NewIndex: 24
  
      refalrts::reset_allocator(vm);
      //TRASH: {REMOVED TILE} {REMOVED TILE} )/9 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
      //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName:1@1/4 AsIs: s.Mode0/5 AsIs: (/8 } Tile{ AsIs: e.NewIndex/24 } Tile{ AsIs: )/13 AsIs: (/16 } Tile{ HalfReuse: s.Mode05 /12 } Tile{ AsIs: e./18 } Tile{ AsIs: )/17 } Tile{ AsIs: e.Vars-B/20 } Tile{ AsIs: e.Vars-E/22 } Tile{ AsIs: >/1 ]] }
      refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_B1Z1]);
      refalrts::reinit_svar( context[12], context[5] );
      refalrts::push_stack( vm, context[1] );
      refalrts::push_stack( vm, context[0] );
      refalrts::link_brackets( context[16], context[17] );
      refalrts::link_brackets( context[8], context[13] );
      refalrts::Iter trash_prev = arg_begin->prev;
      refalrts::use(trash_prev);
      refalrts::Iter res = context[1];
      res = refalrts::splice_evar( res, context[22], context[23] );
      res = refalrts::splice_evar( res, context[20], context[21] );
      res = refalrts::splice_elem( res, context[17] );
      res = refalrts::splice_evar( res, context[18], context[19] );
      res = refalrts::splice_elem( res, context[12] );
      res = refalrts::splice_evar( res, context[13], context[16] );
      res = refalrts::splice_evar( res, context[24], context[25] );
      refalrts::splice_to_freelist_open( vm, context[8], res );
      return refalrts::cSuccess;
    } while ( 0 );
    refalrts::stop_sentence(vm);
  
    // </0 & DoNewVarName=2@1/4 s.Mode0/5 (/8 e./6 )/9 (/12 e.Vars-B/10 )/13 (/16 e.Vars-E/14 )/17 e.dyn/2 >/1
    // closed e. as range 6
    // closed e.Vars-B as range 10
    // closed e.Vars-E as range 14
    // closed e.dyn as range 2
    //DEBUG: s.Mode0: 5
    //DEBUG: e.: 6
    //DEBUG: e.Vars-B: 10
    //DEBUG: e.Vars-E: 14
    //DEBUG: e.dyn: 2
  
    refalrts::reset_allocator(vm);
    //TRASH: {REMOVED TILE} s.Mode0/5 {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE} {REMOVED TILE}
    //RESULT: Tile{ [[ AsIs: </0 Reuse: & DoNewVarName=2@0/4 } Tile{ HalfReuse: (/13 AsIs: (/16 } Tile{ HalfReuse: s.Mode05 /8 AsIs: e./6 AsIs: )/9 } Tile{ AsIs: e.Vars-B/10 } Tile{ AsIs: e.Vars-E/14 } Tile{ HalfReuse: )/12 } Tile{ HalfReuse: s.Mode05 /17 AsIs: e.dyn/2 AsIs: >/1 ]] }
    refalrts::update_name(context[4], functions[efunc_gen_DoNewVarName_A2Z0]);
    refalrts::reinit_open_bracket(context[13]);
    refalrts::reinit_svar( context[8], context[5] );
    refalrts::reinit_close_bracket(context[12]);
    refalrts::reinit_svar( context[17], context[5] );
    refalrts::push_stack( vm, context[1] );
    refalrts::push_stack( vm, context[0] );
    refalrts::link_brackets( context[13], context[12] );
    refalrts::link_brackets( context[16], context[9] );
    refalrts::Iter trash_prev = arg_begin->prev;
    refalrts::use(trash_prev);
    refalrts::Iter res = context[17];
    res = refalrts::splice_elem( res, context[12] );
    res = refalrts::splice_evar( res, context[14], context[15] );
    res = refalrts::splice_evar( res, context[10], context[11] );
    res = refalrts::splice_evar( res, context[8], context[9] );
    res = refalrts::splice_evar( res, context[13], context[16] );
    refalrts::splice_to_freelist_open( vm, context[4], res );
    return refalrts::cSuccess;
  }
  
  static refalrts::NativeReference nat_ref_gen_DoNewVarName_A2Z1("DoNewVarName=2@1", COOKIE1_, COOKIE2_, func_gen_DoNewVarName_A2Z1);
  
  
  //End of file
  