 (extend-protocol IHash
   goog.global.Number (-hash [o] o))
 
-(defn hash [o] (-hash o))
+(defn hash [o]
+  (when o (-hash o)))
 
 (defn- scan-array [incr k array]
   (let [len (.length array)]

  (-assoc-n [coll n val]))

(defprotocol IDeref
  (-deref [o]))

(defprotocol IDerefWithTimeout
  (-deref-with-timeout [o msec timeout-val]))

(defprotocol ISet
  (-contains? [coll v])
  (-disjoin [coll v])
  #_(-get [coll v])
  )

(defprotocol IStack
  (-peek [coll])
