anchor.diff:  
   eval_ast({ast, type, yield, children, Args}, Env) ->
     [_ |Envs] = scanl(fun eval_ast/2, Env, Args),
  -  EvaledArgs = lists:map( fun (T) -> #{ ret_val := R } = T, R end, Envs),
  +  EvaledArgs = lists:map( fun erruby_rb:ret_val/1, Envs),
     LastEnv = case Envs of
                 [] -> Env;
                 _ -> lists:last(Envs)
  
positive.code:   [print_ast(Ast) || Ast <- Children],
    [Receiver | [Msg | Args]] = Children,
    ReceiverFrame = receiver_or_self(Receiver, Env),
    #{ ret_val := Target} = ReceiverFrame,
    [_ |Envs] = scanl(fun eval_ast/2, ReceiverFrame, Args),
    EvaledArgs = lists:map( fun (T) -> #{ ret_val := R } = T, R end, Envs),
    LastEnv = case Envs of
                [] -> ReceiverFrame;
                _ -> lists:last(Envs)
  
negative.code: 
  eval_ast({ast, type, array, children, Args}, Env) ->
    [_ |Envs] = scanl(fun eval_ast/2, Env, Args),
    EvaledArgs = lists:map( fun erruby_rb:ret_val/1, Envs),
    LastEnv = lists:last(Envs),
    erruby_array:new_array(LastEnv, EvaledArgs);
  
  