Feature #12374

Updated by dsferreira (Daniel Ferreira) about 6 years ago

I propose to have a class `SingletonClass`, a subclass of the class `Class`, to which all singleton classes belong. It should be the owner of all the properties that are specific to singleton classes. Also, the methods defined on `Singleton` module should be moved to this class. 

 Reasons are as follows: 

 1. I was thinking that the reason #12084 hasn't been seen positively may be because the developers do not want to define a method only on limited instances of a class. If we have `SingletonClass`, the method `#instance` proposed in #12084 could be defined as an instance method of `SingletonClass`. 

 2. The way to introduce the singleton pattern using the `Singleton` module ( 

 class A 
    include Singleton 
    # ... 

 is a bit unnatural and verbose. If we have `SingletonClass`, then we can define a singleton class more naturally: 

 A =