   (cons
     [this element]
     (cond
-      (map-entry? element)
+      (instance? java.util.Map$Entry element)
         (let [^java.util.Map$Entry entry element]
           (.assoc this (.getKey entry) (.getValue entry)))
       (vector? element)

                          (= -size (. other -size))
                          (= -attributes (. other -attributes))
                          (not (and -content other-content
                                    (not= -content other-content))))))))

  (containsKey
    [this k]

    [this k]
    (let [v (.valAt this k this)]
      (when-not (identical? this v)
        [k v])))

  (seq
    [this]
    (seq (concat [[:id -id] [:size -size]] -attributes)))

  (iterator
    [this]
    (.iterator (seq this)))

  (assoc
    [this k v]
