anchor.diff:               (list name value))
              values))))
     
  -;;; returns the node type for a discrete node
   ;;; it casts node-values into a list and returns something like (MEMBER 1 2 3)
   (defmethod node-type ((node discrete-node))
     `(member ,@(coerce (node-domain-values node) 'list)))
  
positive.code:           (ordered-node-values (sort-node-values node-values)))
        (gethash ordered-node-values cpt))))
  
  ;;; not used anymore
  ;;; question: mustn't lambda be quoted? #'(lambda...
  #+-(defgeneric compute-node-value-index (node node-value parent-values)
    (:documentation "Compute the index of (NODE-VALUE . PARENT-VALUES) in NODE's potential.")
    (:method (node node-value parent-values)
      (let ((node-index (gethash node-value (node-value-index-table node)))
            (parent-indices
              (mapcar (lambda (value node)
                        (gethash value (node-value-index-table node)))
                      parent-values (node-parents node))))
        (cons node-index parent-indices))))
  
  ;; deprecated
  #+-(defgeneric print-potential (node)
    (:documentation "prints the potential / factor-function of the given node.")
    (:method (node)
      (let ((values (node-domain-values node)))
        (format t " ~S | f ~%" (node-name node))
        (dotimes (i (length values))
          (format t " ~S | ~S~%" (elt values i) (node-probability node (elt values i)))))))
  
  (defgeneric print-potential (node)
    (:documentation "prints the potential / factor-function of the given node.")
  
negative.code:   (declare (ignorable node))
    t)
  
  ;;; tests if given node is a discrete node
  ;(defmethod node-discrete-p ((node node))
  ;  (if (eql (type-of node) 'DISCRETE-NODE ) T nil ))
  