def singleton(name, klass = nil, &block)
      @registry[name.to_sym] = Resolver::Singleton.new(block || klass)
    end
def singleton(name, klass = nil, &block)
      @registry[name.to_sym] = Resolver::Singleton.new(block || klass)
    end
Registers a dependency which is only resolved the first time its value is
 fetched. On subsequent fetches, the cached value is returned.