anchor.diff:    (:documentation "Node that consumes values via named inputs."))
   
   (defclass sink-node-mixin ()
  -  ((inputs :accessor inputs :initform nil :initarg :inputs)))
  +  ((inputs :accessor inputs :initform nil :initarg :inputs))
  +  (:documentation "Mixin class that provides slots and some methods for the SINK-NODE protocol
  +class"))
   
   (defmethod input ((node sink-node-mixin) input-name)
     (let ((input-entry (assoc input-name (inputs node))))
  
positive.code: 
  (defclass source-node-mixin ()
    ((validp :accessor validp :initform nil)
     (sinks :accessor sinks :initform nil)))
  
  (defmethod (setf input) :after ((new-val source-node-mixin) sink input-name)
    (let ((node-entry (find sink (sinks new-val) :key #'car)))
  
negative.code:           (arg2 (input-value node 'arg2)))
        (+ arg1 arg2)))
  
    (defclass mult-node (computation-node computation-node-mixin source-sink-mixin)
      ())
  
    (defmethod compute ((node mult-node))
  