   (:require [clojure.tools.reader.impl.utils :refer
              [char whitespace? newline? compile-if >=clojure-1-5-alpha*? make-var]])
   (:import clojure.lang.LineNumberingPushbackReader
-           (java.io InputStream BufferedReader)))
+           (java.io InputStream BufferedReader Closeable)))
 
 (defmacro ^:private update! [what f]
   (list 'set! what (list f what)))

   (source-logging-push-back-reader s-or-rdr buf-len nil))
  ([s-or-rdr buf-len file-name]
   (SourceLoggingPushbackReader.
    (if (string? s-or-rdr) (string-push-back-reader s-or-rdr buf-len) s-or-rdr)
    1
    1
    true

   (indexing-push-back-reader s-or-rdr buf-len nil))
  ([s-or-rdr buf-len file-name]
   (IndexingPushbackReader.
    (to-pbr s-or-rdr buf-len) 1 1 true nil 0 file-name)))

(defn source-logging-push-back-reader
  "Creates a SourceLoggingPushbackReader from a given string or PushbackReader"
