   ;; Records
 
   (scan
-    [this opts]
+    [^Table this opts]
     ; TODO: apply lexicoder
     (->>
       (patch-seq

                          [k (update-record k (get extant k) data)])
                        records)]
      ; Add new data maps to patch-data.
      (->Table
        (.store this)
        (dissoc (.table-info this) ::node/id)
        (.root-data this)
        (into (.patch-data this) new-records)
        true
        (._meta this))))


  (delete
    [this id-keys]
    ; TODO: apply lexicoder
    ; Add tombstones to patch-data.
    (->Table
      (.store this)
      (dissoc (.table-info this) ::node/id)
      (.root-data this)
      (into (.patch-data this) (map vector id-keys (repeat tombstone)))
      true
      (._meta this))))



  (get-records
    [^Table this id-keys opts]
    ; TODO: apply lexicoder
    (let [id-keys (set id-keys)
          patch-map (.patch-data this) ; TODO: merge ::patch
