anchor.diff:    eval_ast(Ast, Env).
   
   new_string(String, Env) ->
  -  Env#{ret_val => String}.
  +  erruby_rb:return(String, Env).
   
   new_symbol(Symbol, Env) ->
  -  Env#{ret_val => Symbol}.
  +  erruby_rb:return(Symbol, Env).
   
   new_frame(Env, Self) ->
     Env#{lvars => #{}, ret_val => not_exist, self => Self, prev_frame => Env}.
  
positive.code: eval_ast({ast, type, lvar, children, [Name]}, Env) ->
    erruby_debug:debug_1("searching lvar ~p~n in frame~p~n", [Name, Env]),
    #{ lvars := #{Name := Val}} = Env,
    Env#{ ret_val => Val};
  
  eval_ast({ast, type, def, children, Children}, Env) ->
    [Name | [ {ast, type, args, children, Args} , Body ] ] = Children,
  
negative.code:             not_found -> erruby_object:find_const(erruby_object:object_class(), Name);
              _ -> LocalConst
            end,
    erruby_rb:return(Const, Env);
  
  
  eval_ast(Ast, Env) ->
  