 
 (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))

(assert (spec/valid? ::type 9))
(assert (= [:long [:value 9]] (spec/conform ::type 9)))
(assert (spec/valid? ::type [:record :a [:constant 9] :b :double]))

(defn export-primitive [x]
  [:export x])

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

(def parse-type #(spec/conform ::type %))

(def compute-size-on (comp compute-size parse-type))

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