             [exp.hierarchy :as hierarchy])
   (:import  [java.util HashMap]))
 
-;; TODO: note other implementations are incorrect, since they don't handle reward decreases of partial nodes properly. ?  
+;; TODO: note other sahucs implementations are incorrect, since they don't handle reward decreases of partial nodes properly. ?  
+;; For the same reason, sahucs-fancy-dijkstra is doubly-incorrect ? 
 
 ; Here, there is no real Seq character.  No real choices.  
 ; Note: hard (impossible?) to unify down and up.

            (make-recursive-expander 
             (delay (make-exhaustive-search 
                     (make-abstracted-incremental-dijkstra-sa-search state reward f))) r)))
     (GoalNode state))
   reward])



  (expand-node        [se new-threshold]
    "Returns PartialResult of SearchNodes."))

(defn make-goal-node [goal-state]
  (reify SearchNode
       (extract-goal-state [] goal-state)
       (expand-node        [min-reward] (throw (UnsupportedOperationException.)))))

;; Named node is simple non-terminal node whose equality semantics are given by name.
(deftype NamedNode [name root-sa expand-fn] :as this
