 (defprotocol ISet  
   (-disjoin [coll v]))
 
-(defprotocol IKeyed
-  (-contains? [coll v]))
-
 (defprotocol IStack
   (-peek [coll])
   (-pop [coll]))

  (assert (contains? (to-array [5 6 7]) 2))
  (assert (not (contains? (to-array [5 6 7]) 3)))
  (assert (not (contains? nil 42)))
  :ok
  )


    ([array f]
       (ci-reduce array f))
    ([array f start]
       (ci-reduce array f start))))

(defn seq
  "Returns a seq on the collection. If the collection is
