     "A vector of interesting doubles"
     [-3.14159 3.14159 4E11 2.998E8 6.626E-34])
   
-  
+
+  (def dates (vmap #(java.util.Date. %) [-6106017600000 0 946728000000 1396909037000]))
+
+  (write-exemplar
+    "dates_interesting"
+    "A vector of interesting dates: 1776-07-04, 1970-01-01, 2000-01-01, 2014-04-07"
+    dates)
+
   (def symbols ['a 'ab 'abc 'abcd 'abcde 'a1 'b2 'c3 'a_b])
   
   (write-exemplar "symbols" "A vector of symbols" symbols)

  (write-exemplar "one_string" "A single string" "hello")
  (write-exemplar "one_keyword" "A single keyword" :hello)
  (write-exemplar "one_symbol" "A single symbol" 'hello)
  
  (def vector-simple  [1 2 3])
  (def vector-mixed  [0 1 2.0 true false "five" :six 'seven "~eight" nil])

  
(defn write-description [file-name description vals]
  (println "##" description)
  (println "* Files:" (str file-name ".edn") (str file-name ".json") (str file-name ".mp"))
  (println "* Value (EDN)")
  (println)
  (doseq [item vals] (println "    " (pr-str item)))
  (println))

(defn write-transit [file-name & vals]
  (doseq [format [{:type :json, :suffix ".json"} {:type :msgpack :suffix ".mp"}]]
    (with-open [os (io/output-stream (str file-name (:suffix format)))]
      (let [jsw (w/writer os (:type format))]
        (doseq [item vals] (w/write jsw item))))))

(defn write-exemplar [file-name description & vals]
  (write-description file-name description vals)
  (with-open [w (io/writer (str file-name ".edn"))]
    (binding [*out* w] (apply pr vals)))
  (apply write-transit file-name vals))

(binding [*out* (io/writer "README.md")]
  (println "# Example transit files.\n\n")
  (println "There are three files for each value: An EDN file and two transit files,")
  (println "one encoded in JSON and one in MessagePack\n\n")
  (println "Note: The example transit files in this directory are *generated*.")
  (println "See https://github.com/cognitect/transit-clj/blob/master/test/exemplar.clj\n\n")

  (write-exemplar "nil" "The nil/null/ain't there value" nil)
  (write-exemplar "true" "True" true)
