   the given reader. The seq continues until the end of the reader is reached.
 
   If non-laziness is needed, see parse-stream."
-  [^BufferedReader reader & [keywords?]]
+  [^BufferedReader reader & [^Boolean keywords?]]
   (parsed-seq* (.createJsonParser factory reader) (or keywords? false)))
 
 (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."
-  [^BufferedReader reader & [keywords?]]
+  [^BufferedReader reader & [^Boolean keywords?]]
   (parsed-seq* (.createJsonParser smile-factory reader) (or keywords? false)))
 
 ;; aliases for clojure-json users

  "Returns the Clojure object corresponding to the given JSON-encoded string.
  keywords? should be true if keyword keys are needed, the default is false
  maps will use strings as keywords."
  [^String string & [keywords?]]
  (parse
   (.createJsonParser factory (StringReader. string))
   true (or keywords? false) nil))

  optional date format string that Date objects will be encoded with.

  The default date format (in UTC) is: yyyy-MM-dd'T'HH:mm:ss'Z'"
  [obj & [^String date-format]]
  (let [sw (StringWriter.)
        generator (.createJsonGenerator factory sw)]
    (generate generator obj (or date-format default-date-format))
