   get: (key) -> @root.get(0, key)
 
   @plusOne: (root, [key, value]) ->
-    if util.isKey(key) and not areEqual(root.get(0, key), value)
+    if util.isKey(key) and root.get(0, key) != value
       root.plus(0, key, new IntLeafWithValue(key, value))
     else
       root

    @elements = Sequence.flatMap @bucket, (n) -> n?.elements

  get: (shift, hash, key) ->
    leaf = Sequence.find @bucket, (v) -> areEqual(v.key, key)
    leaf.get(shift, hash, key) if leaf?

  plus: (shift, hash, leaf) ->


  size: 1

  get:  (shift, hash, key) -> @value if equalKeys(key, @key)

  plus: (shift, hash, leaf) ->
    if equalKeys(@key, leaf.key)
      leaf
    else
      if hash == @hash
