   __iter__: ->
     return new Iterator(@)
   
+  # Inplace xor
   __ixor__: (set) ->
     diff1 = @__sub__(set)
     diff2 = set.__sub__(xor)

      @value.pop(deletedKey)
    return @
  
  __init__: ->
    
  __ior__: (set) ->
    for item in set.value
      @add(item)
    return @
  
  __isub__: (set) ->
    for item in set.value
      if @__contains__(item)

        difference.value.pop(item)
    return difference

  # Returns new Set containing items in this or set, but not both
  __xor__: (set) ->
    diff1 = @__sub__(set)
    diff2 = set.__sub__(xor)
