   
   (write-exemplar "small_ints" "A vector of eleven small integers" (range-centered-on 0))
 
-  (write-exemplar "ints", "vector of ints" (range 128))
-  
+  (write-exemplar "ints", "vector of ints" (vec (range 128)))
+  
+  (def powers-two
+       [1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
+        32768 65536 131072 262144 524288 1048576 2097152 4194304
+        8388608 16777216 33554432 67108864 134217728 268435456
+        536870912 1073741824 2147483648 4294967296 8589934592
+        17179869184 34359738368 68719476736 137438953472
+        274877906944 549755813888 1099511627776 2199023255552
+        4398046511104 8796093022208 17592186044416 35184372088832
+        70368744177664 140737488355328 281474976710656
+        562949953421312 1125899906842624 2251799813685248
+        4503599627370496 9007199254740992 18014398509481984
+        36028797018963968 72057594037927936 144115188075855872
+        288230376151711744 576460752303423488 1152921504606846976
+        2305843009213693952 4611686018427387904 9223372036854775808
+        18446744073709551616 36893488147419103232])
+
   (def interesting-ints 
-    (vec
-      (concat 
-       (range-centered-on 32768)
-       (range-centered-on 65536)
-       (range-centered-on 2147483648)
-       (range-centered-on 4294967296)
-       (range-centered-on 2305843009213693952)
-       (range-centered-on 4611686018427387904))))
-  
+    (vec (apply concat (map #(range-centered-on % 2) powers-two))))
+    
   (write-exemplar 
     "ints_interesting"
     "A vector of possibly interesting positive integers"

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

(defn write-exemplar [file-name description & vals]
  (write-description file-name description 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))))))

(binding [*out* (io/writer "README.md")]
  (println "# Example transit files.\n\n")

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

    "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)
