 
   # Sets a value to the key in this: like `x[key] = value`
   __setitem__: (key, value) ->
-    @value[key.__hash__()] = value
+    @value[key.__hash__().value] = value
     return
   
   #** Unimplemented **


  # Checks if the key exists in this
  __contains__: (key) ->
    return new Bool(key of @value)

  # Removes the key,value pair from this
  __delitem__: (key) ->
    delete @value[key.__hash__()]
    return
    ###
      TODO: Implement __hash__() for all hashable types

  # Gets the item from this: like `x[key]`
  __getitem__: (key) ->
    if @__contains__(key)
      return @value[key.__hash__().value]
    else
      raise new KeyError("#{key}")

