       catch ex
         Object.prototype.toString.call(obj)
 
-  _.reduce(stringVal, ((code, c) -> code * 37 + c.charCodeAt(0)), 0)
+  util.reduce(stringVal, ((code, c) -> code * 37 + c.charCodeAt(0)), 0)
 
 areEqual = (obj1, obj2) ->
   if obj1? and typeof(obj1.equals) == "function"

    else
      remaining = j for j in [1...@table.length] when j != i and @table[j]
      if remaining.length <= 4
        bitmap = _.reduce(remaining, ((b, j) -> b | (1 << j)), 0)
        array  = @table[j] for j in remaining
        new BitmapIndexedNode(bitmap, array, @size - 1)
      else

  without: (shift, hash, key) ->
    switch @bucket.length
      when 0, 1 then null
      when 2    then util.find @bucket, (v) -> not areEqual(v.key, key)
      else           new CollisionNode(hash, this.bucketWithout(key))

  toString: -> "CollisionNode(#{@bucket.join(", ")})"
