   (read-range
     [reader start end]
     "Open an input stream that reads just bytes from `start` to `end`,
-    inclusive."))
+    inclusive. A `nil` for either value implies the beginning or end of the
+    stream, respectively."))
 
 
 (defn- bounded-input-stream

    org.apache.commons.io.input.BoundedInputStream))


(defn persistent-bytes?
  "True if the argument is a persistent byte array."
  [x]
  (instance? PersistentBytes x))


(deftype Block
  [^Multihash id
   ^long size
   content
   _attrs
   _meta]

  ;:load-ns true


  java.lang.Object

  (toString
    [this]
    (format "Block[%s %s %s]"
            id size (cond
                      (persistent-bytes? content) "*"
                      content "~"
                      :else "!")))

  (equals
    [this that]

  (read-all
    [this]
    (this))


  (read-range
    [this start end]
