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

  "Create a ModisChunkLocation."
  [s-res h v id size]
  {:pre [(instance? java.lang.String s-res)
         (every? integer? [h v id size])]}
  (ModisChunkLocation. s-res h v id size))

(defn ModisPixelLocation*
  "Create a ModisPixelLocation."
  [s-res h v sample line]
  {:pre [(instance? java.lang.String s-res)
         (every? integer? [h v sample line])]}
  (ModisPixelLocation. s-res h v sample line))

(defn TimeSeries*
  "Create a TimeSeries."
  ([start vals]
    {:pre [(every? integer? [start])
           (coll? vals)]}
    (let [elems (count vals)]
      (TimeSeries* start
                   (dec (+ start (count vals)))
                   vals)))
  ([start end val]
    {:pre [(every? integer? [start end])
           (coll? val)]}
    (let [series (if (coll? val) (pack val) val)]
      (TimeSeries. start end (mk-array-value series)))))
