 (defmethod clj->jy PersistentHashMap [m] (map->jy m))
 (defmethod clj->jy PersistentArrayMap [m] (map->jy m))
 
-(defn- keyword->lowercase-pystring
+(defn- ^PyUnicode keyword->lowercase-pystring
   [kw]
   (-> kw name str/lower-case (PyUnicode.)))
 

(defmethod clj->jy Character [c] (PyUnicode. (str c)))
(defmethod clj->jy Keyword [k] (PyUnicode. (name k)))

(defn- map->jy
  ([m]
   (map->jy m identity))
  ([m keyfn]

   {:pre [(string? code)]}
   (let [py-code (PyUnicode. ^String code)
         py-lexer-name (if (some? lang)
                         ^PyObject (keyword->lowercase-pystring lang)
                         py-none)
         py-formatter-name (keyword->lowercase-pystring output)

         py-opts (map->jy opts
                          (fn [k]
                            (-> k name (str/replace #"-" "") str/lower-case)))
         res (.__call__ py-run-fn
                        py-code
                        py-lexer-name
                        py-formatter-name
                        py-opts)]

     (when (and res (.__nonzero__ res))
       ;; This won't work with non-text formatters such as :gif, but it's
