    :t-stat      "t-statistic for the relevant month."})
 
 (defrecord FormaValue
-    [fire-value short-drop param-break long-drop t-stat]
-  Comparable
-  (compareTo [m1 m2]
-    (forma.kryo.RecordComparator/recordCompare
-     m1 m2 [:t-stat :fire :short :param-break :long])))
+    [fire-value short-drop param-break long-drop t-stat])
 
 (defn forma-value
   "Returns a vector containing a FireValue, short-term drop,

        :end-idx   end-idx
        :series    (vec series)})))

(gen-class :name forma.kryo.RecordComparator
           :prefix "fields-"
           :methods
           [^{:static true}
            [recordCompare [java.util.Map java.util.Map java.util.List] int]])

(defn fields-recordCompare
  [m1 m2 fn-seq]
  (loop [[f & more] fn-seq]
    (let [val (compare (f m1) (f m2))]
      (if (and more (zero? val))
        (recur more)
        val))))

(defrecord TimeSeriesValue [start-idx end-idx series]
  Comparable
  (compareTo [m1 m2]
    (forma.kryo.RecordComparator/recordCompare
     m1 m2 [:start-idx :end-idx (comp vec :series)])))

(defn ts-record
  ([start-idx series]

   :count      "number of fires on the given day."})

;; Record to hold a FireValue.
(defrecord FireValue [temp-330 conf-50 both-preds count])

(defn fire-value
  "Creates a `fire-value` object with counts of fires meeting certain criteria:
