anchor.diff:  
   ;;;; GraphViz -----------------------------------------------------------------
   (setf cl-dot:*dot-path* "/usr/local/bin/dot")
  +(defparameter *draw-unique-sinks* nil)
   
   (defun attrs (object &rest attributes)
     (make-instance 'cl-dot:attributed
  
positive.code:     :attributes attributes))
  
  (defmethod cl-dot:graph-object-node ((graph (eql 'zdd))
                                       (object t))
    (make-instance 'cl-dot:node
      :attributes (ematch object
                    ((leaf c) `(:label ,(if c "⊤" "⊥") :shape :square))
                    ((node v) `(:label ,v :shape :circle)))))
  
  (defmethod cl-dot:graph-object-points-to ((graph (eql 'zdd))
                                            (object t))
    (ematch object
      ((leaf) '())
      ((node _ hi lo)
       (list (attrs hi :style :solid)
             (attrs lo :style :dashed)))))
  
  (defun draw (zdd &optional (filename "zdd.png"))
    (cl-dot:dot-graph
      (cl-dot:generate-graph-from-roots 'zdd (list zdd))
      filename
      :format :png)
    zdd)
  
negative.code: 
  
  ;;;; Scratch ------------------------------------------------------------------
  (let ((*draw-unique-sinks* nil))
    (with-zdd
      (-<> (zdd-join (zdd-family '(1 2) '(7 8) '())
                     (zdd-family '(1 5 9) nil)
                     (zdd-set '(1)))
        (print-enumerated <>)
        ; (zdd-keep-avoiders-of <> '(2 7))
        (print-enumerated <>)
        (draw <>)
        (zdd-size <>)
        )))
  