 
   IStack
   (-peek [coll] first)
-  (-pop [coll] (irest coll))
+  (-pop [coll] (-rest coll))
 
   ICollection
   (-conj [coll o] (List. meta o coll (inc count)))


(defn bit-xor
  "Bitwise exclusive or"
  [x y] (js* "(~{x} ^ ~{n})"))

(defn bit-shift-left
  "Bitwise shift left"

(defn- pr-seq [obj opts]
  (cond
    (nil? obj) (list "nil")
    (undefined? obj) (list "#<undefined>")
    :else (concat
            (when (and (get opts :meta)
                       (satisfies? IMeta obj)
