anchor.diff:           finally (return (values (list* monomer site-labels)
                                    (1+ i))))))
   
  +
  +(defun parse-nil-monomer-description (monomer bindings binding-table offset)
  +  (multiple-value-bind (labels offset2) 
  +      (parse-special-monomer-description monomer bindings binding-table offset)
  +    (loop for o from offset below offset2
  +          do (push o (gethash nil binding-table)))
  +    (values labels offset2)))
  +          
   (defun normalize-test (x &optional (logical-op 'and))
     (labels ((keywordify-logical-test (x)
                (list* (first x) 
  
positive.code:          ;; [* 1] - a wildcard pattern with a bound site, no labels specified
           else if (user-bond-label-p binding)
                do (record-bond-binding i binding binding-table)
                and collect (make-label i '*) into site-labels
    
           ;; [* label-test] - a wildcard pattern with a label-test only (cnxns unspecified)
           else collect (make-label i binding) into site-labels
  
negative.code:                                  offset
                                   patternp)
    "Given a description of the form (monomer b1 b2 b3...)
     RETURNS: (MONOMER SITE/VALUE-LABELS), PATTERN-P
     Where SITE- and VALUE-LABELS are labels for the graph,
           BINDING-TABLE is a hash-table mapping binding vars to lists pairing sites offsets
                       with either other site offsets or values,
  