   (pessimistic-map- [_ s] {})
 
   angelic/ImplicitAngelicAction 
-  (precondition-context-set [a ss] (env/precondition-context a (state-set/some-element ss)))  
+  (precondition-context-set [a ss] (go-drop-pc o (state-set/get-known-var ss :const)))  
   (can-refine-from-set? [a ss] true)
   (immediate-refinements-set- [a ss]
     (for [o-dst (get (state-set/get-known-var ss :const) [:goal o])]

  (pessimistic-map- [_ s] {})

  angelic/ImplicitAngelicAction 
  (precondition-context-set [a ss] (env/precondition-context a (state-set/some-element ss)))  
  (can-refine-from-set? [a ss] true)
  (immediate-refinements-set- [a ss]
    (let [const (state-set/get-known-var ss :const)


(def move-base-step-reward -2)

(defn make-base-dir
  ([s dp] (make-base-dir (state/get-var s :const)  (state/get-var s [:base]) dp))  
  ([const base [dirname dir]]
     (let [nbase (add-pos base dir)]
       (when (contains? (get const [:freespace]) nbase)
         (env-util/make-factored-primitive 
          [:base dirname]
          {[:base] base [:parked?] false}
          {[:base] nbase}
          move-base-step-reward)))))

(def move-gripper-step-reward -1)

