             (Reflector/invokeStaticMethod class "create" (object-array [vals])))))
       (reader-error rdr "Invalid reader constructor form"))))
 
+(def default-data-reader-fn
+  (when >=clojure-1-5-alpha*?
+    (resolve '*default-data-reader-fn*)))
+
 (defn read-tagged [rdr initch]
   (let [tag (read rdr true nil false)]
     (if-not (symbol? tag)

      (read-tagged* rdr tag f)
      (if (.contains (name tag) ".")
        (read-ctor rdr tag)
        (reader-error rdr "No reader function for tag " (name tag))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Public API

(defn- char [x]
  (when x
    (clojure.core/char x)))

;; getColumnNumber and *default-data-reader-fn* are available only since clojure-1.5.0-beta1
(def ^:private >=clojure-1-5-alpha*?
  (let [{:keys [minor qualifier]} *clojure-version*]
    (and (>= minor 5)
         (not= "alpha"
               (when qualifier
                 (subs qualifier 0 (dec (count qualifier))))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; reader protocols
