anchor.diff:    (chest (name ?chest) (contents ?obj))
     (not (goal-is-to (action unlock) (argument-1 ?chest)))
     =>
  -  (assert-instance
  -   (make-instance 'goal-is-to :action 'unlock
  -                  :argument-1 ?chest)))
  +  (assert ((make-instance 'goal-is-to :action 'unlock :argument-1 ?chest))))
   
   (defrule hold-object-to-move ()
     (goal-is-to (action move) (argument-1 ?obj) (argument-2 ?place))
  
positive.code:   (monkey (location ?place) (holding (not blank)))
    (not (goal-is-to (action hold) (argument-1 blank)))
    =>
    (assert-instance
     (make-instance 'goal-is-to :action 'hold
                    :argument-1 'blank)))
  
  (defrule climb-indirectly ()
    (goal-is-to (action on) (argument-1 ?obj))
  
negative.code:   (monkey (location ?place) (on-top-of ?on) (holding (not blank)))
    (not (goal-is-to (action hold) (argument-1 blank)))
    =>
    (assert ((make-instance 'goal-is-to :action 'hold :argument-1 'blank))))
  
  (defrule grab-object ()
    (?goal (goal-is-to (action hold) (argument-1 ?name)))
  