 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Common Ops ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-(def +worst-summary+ (make-live-summary is/neg-inf))
+(def +worst-summary+ (make-live-summary is/neg-inf []))
 (def +best-summary+  (make-solved-summary is/pos-inf []))
 
 (defn better-summary? [s1 s2]


;;;;;;;;;;;;;;;;;;;;;;; Making and Splitting Subproblems ;;;;;;;;;;;;;;;;;;;;;;;

;; TODO: terminal (solution) if concrete & primitive,
;;       termianl (blocked) if primitive or cannot refine from current set.
(defn make-subproblem [logged-input-set state-context action reward-bound-fn]
  (let [prim?        (env/primitive? action)]


;; Used when deciding when to split.
(defn osp-descendent-summary [osp excluded-child-set]
  (bound-summary (osn-summary @(:node-atom osp) excluded-child-set) (:reward-bound osp)))

(defn osp-ancestor-summary [osp]
  (apply max-summary (map osn-plan-summary (osp-ancestors osp))))


(defn active-osp-summary [osp excluded-child-set]
  (bound-summary
   (max-summary (osp-descendent-summary osp excluded-child-set) (osp-ancestor-summary osp))
   (:reward-bound osp)))


(defn refine-osp!
