anchor.diff:           (goal-scene (scene-graph goal-scene))
            (moveable-frames (scene-collect-type init-scene "moveable"))
            (moveable-objects (map 'list #'robray::scene-frame-name moveable-frames))
  +         (stackable-frames (scene-collect-type init-scene "stackable"))
  +         (stackable-objects (map 'list #'robray::scene-frame-name stackable-frames))
            ;;(stackable-objects (map 'list #'robray::scene-frame-name stackable-frames))
            (locations (scene-locations init-scene resolution
                                        :max-count max-locations
  
positive.code:                     &key
                        (encoding :linear)
                        goal)
  
    (labels ((location-predicate (object parent i j)
               (ecase encoding
                 (:quadratic (list 'at object (itmp-encode-location parent i j)))
                 (:linear `(= (position ,object) ,(itmp-encode-location parent i j)))))
             (occupied-predicate (parent i j)
               (list 'occupied (itmp-encode-location parent i j)))
             (frame-predicates (name parent i j)
  
negative.code: 
  
      (let* ((scene (scene-graph scene))
             (stackable-frames (scene-collect-type scene "surface"))
             (locations-list
              (loop for frame in stackable-frames
                 for name = (robray::scene-frame-name frame)
  