         ret (traits/reify-traits [cache-trait summaries/simple-node]
              summaries/Summarizable (summarize [s] (summary-fn s))
              Subproblem             (subproblem-name [s] name)
-                                    (input-set       [s] input-set)
-                                    (output-set       [s] output-set)
+                                    (input-set       [s] inp-set)
+                                    (output-set       [s] out-set)
                                     (tree-summarizer [s] @ts-atom)
              OutputWatched          (add-watcher! [s w] (add-watcher! @ts-atom w)))
         ts  (make-tree-summarizer ret)]

;; Needs a watched, with full subproblem cache, tied to output.
;; Summary should initially be 0 :live, then worst after eval.
(defn- make-atomic-stub [subsuming-as inp-set function-set]
  (let [state (atom :ready)] ;; set to [out-set reward] after first eval, then :go after second.
    (traits/reify-traits [simple-watched]
     summaries/Summarizable
     (summarize [s]
       (cond (= :ready @state) (summary/make-live-simple-summary 0 s)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Summarizers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#_ (def  ^{:private true} cache-trait summaries/uncached-summarizer-node)
 (def ^{:private true} cache-trait summaries/eager-cached-summarizer-node)
#_ (def ^{:private true} cache-trait summaries/less-eager-cached-summarizer-node)
#_ (def ^{:private true} cache-trait summaries/lazy-cached-summarizer-node)
#_ (def ^{:private true} cache-trait summaries/pseudo-cached-summarizer-node)


(defprotocol SimpleWatched
  (add-output! [sw o])
