         (summaries/summary-changed! ret))) ;; TODO: efficiency?
     
     ret))
+
+(comment
+  ;; Old test used this -- do we need to split on right for blocked left?
+  (not (summary/live? (summaries/summary left-sp)))                                
+ (not (= Double/NEGATIVE_INFINITY (summary/max-reward (summaries/summary left-sp)))))
 
 (defn- make-pair-stub2 [subsuming-sp left-sp right-stub]
   (let [nm [:Pair (subproblem-name left-sp) (stub-name right-stub)]

;; TODO TODO: we should not use tree-summarizer when left-done
;; How do we know that current output set is actually solved ?
;; TODO: remove ss ?
;; Note: this is the only place logic depends on summary.  Potential for problems? 
(defn- make-pair-subproblem [subsuming-sp pair-stub left-sp right-sp]
  (let [expand-right? (not (or (summary/live? (summaries/summary left-sp)) (seq (get-outputs left-sp))))
        [ss watch stub-f]
        (if expand-right?
          [(summaries/make-sum-summarizer [(tree-summarizer left-sp) right-sp])


;; TODO: add options to search alg.



(set! *warn-on-reflection* true)
