anchor.diff:  
   (defclass library ()
     ((id :initarg :id
  -       :initform -1
  +       :initform nil
          :accessor library-id
          :type integer
          :documentation "The library id")
  
positive.code: 	  (loop for replace in (library-replaces library)
  	     when (requirement-matches requirement replace)
  	     do (return-from library-matches :match-replace))))))
  
negative.code: 		   :name (first unique-name)
  		   :version (second unique-name)
  		   :dependencies
  		   (let ((depends (cadar
  				   (remove-if-not (lambda (reqs)
  						    (equalp (first reqs) :depends))
  						  requirements))))
  		     (loop for constraint in depends
  			collect (progn
  					;(break "~A" constraint)
  				  (make-requirement (first constraint) (second constraint)))))
  		   :provides
  		   (let ((provides (cadar
  				    (remove-if-not (lambda (reqs)
  						     (equalp (first reqs) :provides))
  						   requirements))))
  		     (loop for constraint in provides
  			collect (make-requirement (first constraint) (second constraint))))
  		   :conflicts
  		   (let ((conflicts (cadar
  				     (remove-if-not (lambda (reqs)
  						      (equalp (first reqs) :conflicts))
  						    requirements))))
  		     (loop for constraint in conflicts
  			collect (make-requirement (first constraint) (second constraint))))
  		   :suggests
  		   (let ((suggests (cadar
  				    (remove-if-not (lambda (reqs)
  						     (equalp (first reqs) :suggests))
  						   requirements))))
  		     (loop for constraint in suggests
  			collect (make-requirement (first constraint) (second constraint))))
  		   :replaces
  		   (let ((replaces (cadar
  				    (remove-if-not (lambda (reqs)
  						     (equalp (first reqs) :replaces))
  						   requirements))))
  		     (loop for constraint in replaces
  			collect (make-requirement (first constraint) (second constraint)))))))
  
  (defun library-unique-name (library)
    (format nil "~A~@[-~A~]"
  