anchor.diff:  
   
   (defmacro with-zdd (&body body)
  +  "Execute `body` with the ZDD settings properly initialized."
     `(with-odd-context (:operation #'zdd-apply :node-cache *cache*)
       ,@body))
  +
   
   (defun enumerate (zdd)
     "Return a list of all members of `zdd`."
  
positive.code:          (zdd-random-member lo)
           (cons var (zdd-random-member hi)))))))
  
  (defun unit-patch (z)
    (ematch z
      ((sink t) z)
      ((sink nil) (sink t))
      ((node variable hi lo)
       (zdd-node variable hi (unit-patch lo)))))
  
  
  (defun zdd-set (elements)
    (make-set elements))
  
  
  
negative.code:                                   (zdd-join% lo-a lo-b)))))))
  
  (defun zdd-join (&rest zdds)
    "Return the relational join of ZDDs: {α ∪ β | α ∈ Z₁ and β ∈ Z₂}."
    (if zdds
      (reduce #'zdd-join% zdds)
      (sink nil)))
  