 
 (set! cljs.core.ObjMap/fromObject (fn [ks obj] (ObjMap. nil ks obj)))
 
-(set! cljs.core.ObjMap.prototype.call
-      (fn
-        ([_ k] (-lookup (js* "this") k))
-        ([_ k not-found] (-lookup (js* "this") k not-found))))
+(extend-type cljs.core.ObjMap
+  IFn
+  (-invoke
+    ([_ k] (-lookup (js* "this") k))
+    ([_ k not-found] (-lookup (js* "this") k not-found))))
 
 ; The keys field is an array of all keys of this map, in no particular
 ; order. Each key is hashed and the result used as a property name of


(set! cljs.core.Set/EMPTY (Set. nil (hash-map)))

(set! cljs.core.Set.prototype.call
      (fn
        ([_ k] (-lookup (js* "this") k))
        ([_ k not-found] (-lookup (js* "this") k not-found))))

(defn set
  "Returns a set of the distinct elements of coll."

        (recur (inc i) (assoc out (aget ks i) (aget vs i)))
        out)))))

(extend-type cljs.core.HashMap
  IFn
  (-invoke
    ([_ k] (-lookup (js* "this") k))
    ([_ k not-found] (-lookup (js* "this") k not-found))))

(defn hash-map
  "keyval => key val
