 (extend-type default
   IHash
   (-hash [o]
-    (goog.getUid o)))
+    (goog/getUid o)))
 
 ;;this is primitive because & emits call to array-seq
 (defn inc

  [x y]
  (cond
   (identical? x y) 0
   (nil? x) -1
   (nil? y) 1
   (identical? (type x) (type y)) (if (satisfies? IComparable x)
                                    (-compare x y)
                                    (garray/defaultCompare x y))
   :else (throw (js/Error. "compare on non-nil objects of different types"))))

(defn ^:private compare-indexed
  "Compare indexed collection."

  ([coll n]
     (when-not (nil? coll)
       (cond
         (satisfies? IIndexed coll false)
         (-nth coll (.floor js/Math n))

         ^boolean (goog/isArray coll)
         (when (< n (.-length coll))
           (aget coll n))
         
         (string? coll)
         (when (< n (.-length coll))
           (aget coll n))
         
