 
   (copy-and-set-value [inode e bit val]
     (let [idx (inc (* 2 (bitmap-indexed-node-index datamap bit)))]
-      (if (can-edit e edit)
+      (if ^boolean (can-edit e edit)
         (do
           (aset arr idx val)
           inode)

  Object
  (copy-and-set-node [inode e bit node]
    (let [idx (node-at arr nodemap bit)]
      (if (can-edit e edit)
        (do
          (aset arr idx node)
          inode)

        (not (zero? (bit-and datamap bit)))
        (let [idx (bitmap-indexed-node-index datamap bit)
              k (aget arr (* 2 idx))]
          (if (key-test k key)
            [k (aget arr (inc (* 2 idx)))]
            not-found))
        (not (zero? (bit-and nodemap bit)))
