   (let [name [:achieve-precondition var dst-val]
         av   (action-var var)
         pc   (util/safe-get-in hierarchy [:precondition-context-map var])
-        pc   (:full-context hierarchy)
+;        pc   (:full-context hierarchy)
         ]
     (reify
       env/Action

        reduced-pm    (dissoc (:precond-map a) effect-var)
        ancestor-vars (util/safe-get-in hierarchy [:ancestor-var-map effect-var])
        child-var-map (:child-var-map hierarchy)
        pc            (into #{(action-var effect-var)}
                        (apply concat (map (:fire-action-pc-map hierarchy) (keys reduced-pm))))
;        pc (:full-context hierarchy)
        ]
;    (println "FA" name pc "\n" (clojure.set/difference (:full-context hierarchy) pc))

            (do ;(print "g") (flush) 
              [[x]])

          ;; Real deadlock - fail (for SA, must restrict context...)
          (deadlocked? s context-cvm []) 
            (do ;(print "d") (flush)
               nil)
            
          ;; Deadlocked by something out-of-context -- exit  (note -- need to check for goal means
            ; we should catch these issues earlier..
