anchor.diff:  (def-env-accessor env ws-env
       "The environemnt for a state")
   
  -(defun nav (loc)
  +(defun* nav (loc)
     "nav LOC 
   Navigate to location LOC.  Repeatedly choose among the N, E, S, W, and REFUEL actions until the
   robot reaches LOC."
  
positive.code:           (let ((next-loc (second (grid-world:shortest-path (env) (robot-loc) loc))))
              (action navigate-move (direction-from-to (robot-loc) next-loc)))))))
  
  (defun pickup-waste ()
    "pickup-waste
  Navigate to the location of the waste and pick it up."
    (call navigate-to-waste (refuel-and-nav (waste-source)))
    (action pickup-action 'pickup))
  
  (defun drop-waste ()
    "drop-waste
  Navigate to the dropoff location and drop off the waste."
    (call navigate-to-dropoff (refuel-and-nav (waste-target)))
    (action drop-action 'drop))
  
  (defun waste-robot-prog ()
    "waste-robot-prog
  Repeadedly pick up waste and drop it off."
    (loop
  
negative.code:           (with-choice navigate-choice (dir '(N E S W))
              (action navigate-move dir))))))
  
  (defun* refuel-and-nav-directly (loc)
    "refuel-and-nav-directly LOC 
  Navigate to location LOC.  Repeatedly choose among the N, E, S and W actions until the robot
  reaches LOC."
    (until (equal (robot-loc) loc)
  