 
 (def primitive-values #{:double :float :long :int :bool :number})
 
-(declare compute-size)
-
 (defn size-op [f]
   (fn [a b]
     (if (and (number? a) (number? b))

      (= :record h) (compute-record-size b)
      :default nil)))

(def compute-size-on (comp compute-size #(spec/conform ::type %)))

;; 
(assert (= 1 (compute-size-on 9)))

(def size-add +)
(def size-mul *)
(def size-max max)

(declare compute-size)

(defn compute-vec-size [x]
  (size-mul (compute-size (vec-type x))
