# File lib/map.rb, line 774
  def Map.collection_has?(collection, key, &block)
    has_key =
      case collection
        when Array
          key = (Integer(key) rescue nil)
          !!collection.fetch(key) rescue false

        when Hash
          collection.has_key?(key)

        else
          raise(IndexError, "(#{ collection.inspect })[#{ key.inspect }]")
      end

    block.call(key) if(has_key and block)

    has_key
  end