anchor.diff:    S = io_lib:format("~p",[Self]),
     erruby_vm:new_string(S,Env).
   
  +%TODO support property?
   new_object_with_pid_symbol(Symbol, Class) ->
     gen_server:start_link({local, Symbol}, ?MODULE, [#{class => Class}], []).
  +
  +new_object(Class, Payload) when is_map(Payload) ->
  +  start_link(Class, Payload).
  +
   
   init_object_class() ->
     {ok, Pid} = gen_server:start_link({local, erruby_object_class}, ?MODULE, [],[]),
  
positive.code:   Receiver = self_or_object_class(Self),
    gen_server:call(Receiver, #{type => def_method, name => Name, func => Func}).
  
  def_global_const(Name, Value) ->
    gen_server:call(object_class(), #{type => def_const, name => Name, value => Value}).
  
  
  def_const(Self, Name, Value) ->
  
negative.code: -behavior(gen_server).
  -export([init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2, handle_info/2]).
  %for vm
  -export([def_method/4, find_instance_method/2, def_global_const/2, find_global_const/1, def_const/3, find_const/2, init_object_class/0,object_class/0]).
  %for other buildtin class
  -export([def_method/3, new_object_with_pid_symbol/2, new_object/2]).
  -export([init_main_object/0, main_object/0]).
  -export([start_link/2, start_link/1]).
  
  