   (-count [coll] (hamt/count h))
 
   ILookup
-  ; TODO: multiple arity protocols
   (-lookup [coll k]
     (hamt/get k h))
+  (-lookup [coll k not-found]
+    (hamt/tryGet not-found k h))
 
   IAssociative
   (-assoc [coll k v]

  (-next [coll]))

(defprotocol ILookup
  ;; FIXME multiple arity protocols
  (-lookup [o k])
  ; (-lookup [o k] [o k not-found])
)

(defprotocol ISet
  (-disjoin [coll v]))

      (== 1 cnt) []
      :else  (subvec coll 0 (dec cnt))))

  ICollection
  (-conj [coll o]
    (PersistentVector. (hamt/set (+ offset cnt) o h) offset (inc cnt)))
