anchor.diff:                          )
     )
   
  -(let ((*draw-unique-sinks* t))
  -  (with-zdd
  -    (-<> (make-rule-tree *rules*)
  -      ; (print-enumerated <>)
  -      ; (zdd-keep-avoiders-of <> '(2 7))
  -      (mapprint-through #'enumerate <>)
  -      (print-through #'zdd-count <>)
  -      (print-through #'zdd-size <>)
  -      (draw <>)
  -      ; (zdd-size <>)
  -      (never)
  -      )
  -    (pr '--------------)
  -    (-<> (apply #'zdd-family *state*)
  -      (mapprint-through #'enumerate <>)
  -      (print-through #'zdd-count <>)
  -      (print-through #'zdd-size <>)
  -      ; (draw <>)
  -      ; (zdd-size <>)
  -      (never)
  -      )
  -    (pr '--------------)
  -    (-<> (apply-rule-tree (apply #'zdd-family *state*)
  -                          (make-rule-tree *rules*)
  -                          100)
  -      (mapprint-through #'enumerate <>)
  -      (print-through #'zdd-count <>)
  -      (print-through #'zdd-size <>)
  -      ; (draw <>)
  -      ; (zdd-size <>)
  -      (never)
  -      )
  -    ))
  +(with-zdd
  +  (-<> (make-rule-tree *rules*)
  +    ; (print-enumerated <>)
  +    ; (zdd-keep-avoiders-of <> '(2 7))
  +    (mapprint-through #'enumerate <>)
  +    (print-through #'zdd-count <>)
  +    (print-through #'zdd-size <>)
  +    (draw <> :unique-sinks t :unique-nodes t :hexp (curry #'<= 1000))
  +    ; (zdd-size <>)
  +    (never)
  +    )
  +  ; (pr '--------------)
  +  ; (-<> (apply #'zdd-family *state*)
  +  ;   (mapprint-through #'enumerate <>)
  +  ;   (print-through #'zdd-count <>)
  +  ;   (print-through #'zdd-size <>)
  +  ;   ; (draw <>)
  +  ;   ; (zdd-size <>)
  +  ;   (never)
  +  ;   )
  +  ; (pr '--------------)
  +  ; (-<> (apply-rule-tree (apply #'zdd-family *state*)
  +  ;                       (make-rule-tree *rules*)
  +  ;                       100)
  +  ;   (mapprint-through #'enumerate <>)
  +  ;   (print-through #'zdd-count <>)
  +  ;   (print-through #'zdd-size <>)
  +  ;   ; (draw <>)
  +  ;   ; (zdd-size <>)
  +  ;   (never)
  +  ;   )
  +  )
   
   
   (defun test ()
  
positive.code: ;;;; 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
      :object object
      :attributes attributes))
  
  (defmethod cl-dot:graph-object-node ((graph (eql 'zdd))
                                       (object node))
    (make-instance 'cl-dot:node
      :attributes (ematch object
                    ((node v) `(:label ,v :shape :circle)))))
  
  (defun sink-attrs (val)
    `(:label ,(if val "⊤" "⊥")
  
negative.code: 
  
  ;;;; Scratch ------------------------------------------------------------------
  (with-zdd
    (-<> (zdd-join (zdd-family '(1 2) '(7 8) '())
                   (zdd-family '(1 5 9) nil)
                   (zdd-set '(1)))
      (print-through #'enumerate <>)
      (zdd-keep-avoiders-of <> '(2 7))
      (print-through #'enumerate <>)
      (draw <>)
      (zdd-size <>)
      ))
  
  
  (defparameter *rules* '(
                          (1001 (not 2) 1)
  