anchor.diff:    (make-instance 'cl-dot:node
                    :attributes (adt:match rule-tree object
                                  ((leaf heads)
  -                                `(:label ,(format nil "+~S" heads)
  +                                `(:label ,(structural-string heads)
                                     :shape :ellipse))
  -                               ((node term _ _ heads)
  -                                `(:label ,(format nil "~S~A" term
  -                                                  (if heads
  -                                                    (format nil "~%+~S" heads)
  -                                                    ""))
  +                               ((node term _ _)
  +                                `(:label ,(structural-string term)
                                     :shape :box)))))
   
   (defmethod cl-dot:graph-object-points-to ((graph (eql 'rule-tree))
                                             (object rule-tree))
     (adt:match rule-tree object
       ((leaf _) nil)
  -    ((node _ low high _)
  +    ((node _ low high)
        (list (attrs high :style :solid)
              (attrs low :style :dashed)))))
   
  
positive.code: (defparameter *rules* '(
                          (x (not b) a)
                          (x a c)
                          (y (true dogs))
                          (z d b)
                          (z (not c) d)
                          ))
  
negative.code: 
  
  (adt:defdata rule-tree
    (node t rule-tree rule-tree)
    (leaf list))
  
  
  