 (defn read-literal-block
   "Creates a block by reading the source into memory and hashing it. This
   creates a realized block."
+  ^Block
   [source algorithm]
   (let [hash-fn (checked-hash algorithm)
         content (bytes/to-byte-array source)]

(defn create-literal-block
  "Creates a block by reading a source into memory. The block is given the id
  directly, without being checked."
  [id source]
  (let [content (bytes/to-byte-array source)]
    (Block. id

      _attrs
      {:id id
       :size size
       :block/state
       (cond content :literal
             reader  :lazy
             :else   :empty)}))


  clojure.lang.IPending
