def merge(other)
      self.class.new.tap do |result|
        result.merge!(self)
        result.merge!(other)
      end
    end
def merge(other)
      self.class.new.tap do |result|
        result.merge!(self)
        result.merge!(other)
      end
    end
Merge one registry with another and return a completely new
 registry. Note that the result cache is completely busted, so
 any gets on the new registry will result in a cache miss.