 (extend-protocol IPackable
   java.lang.Iterable
   (pack [[v :as xs]]
+    (prn "v" (integer?  v) "xs" (type xs))
     (cond (= forma.schema.FormaValue (type v)) (forma-array xs)
           (= forma.schema.FireValue (type v)) (fire-array xs)
           (integer? v) (int-struct xs)

  Example usage for unpacking a TimeSeries:

    > (def ts (TimeSeries* 0 1 [1.0 2.0 3.0]))
    > (unpack ts)
    [0 1 #<ArrayValue <ArrayValue doubles:DoubleArray(doubles:[1.0, 2.0, 3.0])>>]


               forma.schema.FireValue forma.schema.FormaArray
               forma.schema.FormaValue forma.schema.IntArray
               forma.schema.LongArray forma.schema.TimeSeries
               java.lang.Double java.lang.Integer java.lang.Long
               java.lang.Short]
        vals (if (coll? x) x (vector x))]
    (some (fn [val] (some #(= (type val) %) types)) vals)))

