 (def joda-time-writer
   (transit/write-handler
    (constantly "lm")
-   (fn [v] (-> v tc/to-date .getTime))
-   (fn [v] (-> v tc/to-date .getTime .toString))))
+   (fn [v] (.getTime ^java.util.Date (tc/to-date v)))
+   (fn [v] (.toString ^java.lang.Long (.getTime ^java.util.Date (tc/to-date v))))))
 
 (def joda-time-reader
   (transit/read-handler #(-> % (tc/from-long) (tc/to-local-date-time))))

   str))

(def int-reader
  (transit/read-handler #(Integer. %)))

(def transit-write-handlers (atom {}))
(def transit-read-handlers (atom {}))


(extend-protocol j/IResultSetReadColumn
  java.sql.Date
  (result-set-read-column [v _ _] (LocalDate. ^java.sql.Date v ^DateTimeZone nlZone))
  java.sql.Timestamp
  (result-set-read-column [v _ _] (LocalDateTime. ^java.sql.Timestamp v  ^DateTimeZone nlZone))
  java.sql.Array
  (result-set-read-column [v _ _]
    (into [] (.getArray v))))
