class Singleton(name) { static instance; method new(name) { instance := Singleton.bless(Hash(:name => name)); } method new { Singleton.new(nil); } } var s1 = Singleton('foo'); say s1.name; #=> 'foo' say s1.object_id; #=> '30424504' var s2 = Singleton(); say s2.name; #=> 'foo' say s2.object_id; #=> '30424504' s2.name = 'bar'; # change name in s2 say s1.name; #=> 'bar'