# File lib/map.rb, line 451
  def keep_if( &block )
    raise RuntimeError.new( "can't modify frozen #{ self.class.name }" ) if frozen?
    return to_enum( :keep_if ) unless block_given?
    each { | key , val | delete key unless yield( key , val ) }
    self
  end