          (.clear ~buffer)
          ba#)))
 
+(def ^:private gt-byte (byte \>))
+(def ^:private newline-byte (byte \newline))
+
 (defn- sequqntial-read*
   "Core function to read FASTA sequentially.
    Function f is called every time a single sequence finishes reading.

           (loop [i 0 name-line? false rname rname*]
             (if (< i bytes)
               (let [b (aget buf i)]
                 (if (= b 62) ; \>
                   (do (when-let [s (create-ba s-buf)] (f {:name rname :sequence s}))
                       (recur (inc i) true rname))
                   (if (= b 10) ; \newline
                     (if name-line?
                       (recur (inc i) false (create-ba n-buf))
                       (recur (inc i) name-line? rname))

                     (map? s) (cons s (lazy-seq (read-fn* rdr name))))))]
    (read-fn rdr nil)))

(defn- read-sequence-with-offset
  [^FASTAReader rdr offset-start offset-end]
  (let [len (- offset-end offset-start)
