anchor.diff:    gen_server:call(Receiver, #{type => def_method, name => Name, func => Func}).
   
   def_singleton_method(Self, Name, Args, Body) ->
  -  Receiver = singleton_class(Self),
  +  Receiver = get_or_create_singleton_class(Self),
     gen_server:call(Receiver, #{type => def_method, name => Name, args => Args, body => Body}).
   
   def_singleton_method(Self,Name,Func) when is_function(Func) ->
  -  Receiver = singleton_class(Self),
  +  Receiver = get_or_create_singleton_class(Self),
     gen_server:call(Receiver, #{type => def_method, name => Name, func => Func}).
   
   %TODO call def_const instead
  
positive.code:     not_found -> find_method_in_ancestors(Rest, Name);
      _ -> Method
    end.
  
negative.code:     _ -> Self
    end.
  
  
  singleton_class(Self) ->
    Properties = get_properties(Self),
    maps:get(singleton_class, Properties, not_found).
  
  get_or_create_singleton_class(Self) ->
    SingletonClass = singleton_class(Self),
    case SingletonClass of
      not_found ->
        {ok, NewSingletonClass} = erruby_class:new_named_class("singleton class"),
        Properties = get_properties(Self),
        NewProperties = Properties#{ singleton_class => NewSingletonClass },
        set_properties(Self, NewProperties),
        NewSingletonClass;
  