 
         return set
 
-    concat: (items) ->
+    concat: (ls) ->
+        # add a collection of items to the set
         if items instanceof OrderedSet
-            @add items.items...
+            @add ls.items...
         else
-            @add items...
+            @add ls...
 
+    # set.item(i) -> array[i]
     item: (n) -> @items[n]
 
     toArray: -> @items[0..]
 
     slice: -> @items.slice arguments...
 
-    equal:   (a, b) -> a is b
+    equal: (a, b) -> a is b
 
     greater: (a, b) -> b > a
 

    ##   equal(a, b)
    constructor: (@items = [], unique = no, sorted = no) ->
        if not unique
            @uniqify()
        else if not sorted
            @sort()

        @length = @items.length

    __constructor__: OrderedSet

    contains: (item) ->
        some.call @items, (a) => @equal a, item

    sort: ->
        @items.sort (a, b) => if @greater(b, a) then 1 else -1
        return this

    uniqify: ->
        # enforce the policy that no two
        # items (a, b) should be @equal(a, b)
        _items = @items

            new @__constructor__ @items.concat([item]), yes

    add: (items...) ->
        # add each of the arguments to the set
        set = this

        for item in items
