                             :sql-date-converter default-sql-date->instant-fn
                             :date-formatter java.time.format.DateTimeFormatter/ISO_INSTANT
                             :key-fn default-write-key-fn
-                            :value-fn default-value-fn})
+                            :value-fn default-value-fn
+                            :indent false
+                            :indent-depth 0})
 (defn write
   "Write JSON-formatted output to a java.io.Writer. Options are
    key-value pairs, valid options are:

          (if-not (= value-fn out-value)
            (do
              (when have-printed-kv
                (.append out \,))
              (write-string out-key out options)
              (.append out \:)
              (-write out-value out options)
              (when (seq nxt)
                (recur nxt true)))
            (when (seq nxt)
              (recur nxt have-printed-kv)))))))
  (.append out \}))

(defn- write-array [s ^Appendable out options]
  (.append out \[)
  (loop [x s]
    (when (seq x)
      (let [fst (first x)
            nxt (next x)]
        (-write fst out options)
        (when (seq nxt)
          (.append out \,)
          (recur nxt)))))
  (.append out \]))

(defn- write-bignum [x ^Appendable out options]

              (.append out (char cp)))))))
    (.append out \")))

(defn- write-indent [^Appendable out options]
  (let [indent-depth (:indent-depth options)]
    (.append out \newline)
    (loop [i indent-depth]
      (when (pos? i)
        (.append out "  ")
        (recur (dec i))))))

(defn- write-object [m ^Appendable out options]
  (let [key-fn (get options :key-fn)
        value-fn (get options :value-fn)
        indent (get options :indent)
        opts (cond-> options
               indent (update :indent-depth inc))]
    (.append out \{)
    (when (and indent (seq m))
      (write-indent out opts))
    (loop [x m, have-printed-kv false]
      (when (seq x)
        (let [[k v] (first x)
