 (defn parsed-seq
   "Returns a lazy seq of Clojure objects corresponding to the JSON read from
   the given reader. The seq continues until the end of the reader is reached.
+
   The array-coerce-fn is an optional function taking the name of an array field,
   and returning the collection to be used for array values.
   If non-laziness is needed, see parse-stream."

(defn parsed-smile-seq
  "Returns a lazy seq of Clojure objects corresponding to the SMILE read from
  the given reader. The seq continues until the end of the reader is reached.
  The array-coerce-fn is an optional function taking the name of an array field,
  and returning the collection to be used for array values."
  [^BufferedReader reader & [^Boolean keywords? array-coerce-fn]]

  "Returns the Clojure object corresponding to the given reader, reader must
  implement BufferedReader. keywords? should be true if keyword keys are needed
  the default is false, maps will use strings as keywords.

  The array-coerce-fn is an optional function taking the name of an array field,
  and returning the collection to be used for array values.
  If laziness is needed, see parsed-seq."
  [^BufferedReader rdr & [^Boolean keywords? array-coerce-fn]]
  (when rdr
    (parse
     (.createJsonParser ^JsonFactory (or *json-factory* json-factory) rdr)
