fn Singleton() if this.self then return this.self cls var new: {} iter k,v as this._props do new[k]:v cls this.self:new return new cls Singleton._props: { name: "Singleton", fn setName(self,new) self.name:new cls, } var MySingleton: Singleton() log(MySingleton == Singleton()) --true log(MySingleton.name) --Singleton var NewSingleton: Singleton() NewSingleton>>setName("Test") log(MySingleton.name) --Test