   "Create a FormaValue."
   [fire short long tstat & break]
   {:pre [(instance? forma.schema.FireValue fire)
-         (every? #(instance? java.lang.Double %) [short long tstat])
-         (or (not break) (instance? java.lang.Double (first break)))]}
+         (every? float? [short long tstat])
+         (or (not break) (float? (first break)))]}
   (let [[break] break
         forma-value (FormaValue. fire short long tstat)]
     (if break

         (or (nil? avg-break) (float? avg-break))
         (or (nil? min-break) (float? min-break))
         (instance? java.lang.Long ncount)
         (every? #(float? %)
                 [avg-short min-short avg-long min-long avg-stat min-stat])]}
  (let [n-value (NeighborValue. fire ncount avg-short min-short avg-long min-long
                                avg-stat min-stat)]

  java.lang.Iterable
  (pack [[v :as xs]]
    (cond (= forma.schema.FormaValue (type v)) (forma-array xs)
          (= forma.schema.FireValue (type v)) (fire-array xs)
          (integer? v) (int-struct xs)
          (float? v) (double-struct xs))))

(extend-protocol ITimeSeries
  TimeSeries
