 (defn ? [& chain]
   (dochain (thread-chain chain)))
 
-(defn meta-view [#^String suffix #^Model src-metamodel f]
+(defn meta-view [^String suffix ^Model src-metamodel f]
   ;; create a metamodel into which t place our results...
   (let [tgt-metamodel (model (str (.getName src-metamodel) suffix) (.getMetadata src-metamodel))]
     ;; register it with the global metamodel

(defn sum-value-key [key]
  (str "sum(" key ")"))

(defn #^Metadata sum-reducer-metadata
  [#^Collection primary-keys sum-key #^Collection extra-attribute-specs]
  (custom-metadata 
   (name (gensym "org.dada.core.reducer.Sum"))
   Object

	     [tgt-metadata (str metaprefix tgt-name) extra-keys '(:pivot)])
	 ;; direct
	 (fn []
	     (let [[^Model src-metamodel prefix ^Collection extra-pairs] (direct-fn)
		   dummy (trace (str "PIVOT extra-pairs before pivot: " extra-pairs))
		   extra-pairs (remove #(= (first %) pivot-key) extra-pairs)
		   dummy (trace (str "PIVOT extra-pairs after pivot:  " extra-pairs))
