module Sus
def self.Shared(name, &block)
def self.Shared(name, &block) Shared.build(name, block) end
def self.base(description = nil, root: nil)
def self.base(description = nil, root: nil) base = Class.new(Base) base.extend(Context) base.identity = Identity.new(root) if root base.description = description base.set_temporary_name("#{self}[#{description}]") return base end