class Hamster::Hash

def derive_new_hash(trie)


The new `Hash` will retain the existing default block, if there is one.
Return a new `Hash` which is derived from this one, using a modified {Trie}.
def derive_new_hash(trie)
  if trie.equal?(@trie)
    self
  elsif trie.empty?
    if @default
      self.class.alloc(EmptyTrie, @default)
    else
      self.class.empty
    end
  else
    self.class.alloc(trie, @default)
  end
end