anchor.diff:    (let ((method-name (intern (concatenate 'string (symbol-name concept-name) "-IMPL")))
   	(normal-lambda-args (%documented-lambda-list-to-lambda-list documented-lambda-list :error-on-missing-doc nil))
   	(concept-symbol (%create-concept-symbol concept-name 
  -						(%documented-lambda-list-argument-types documented-lambda-list :error-on-missing-doc nil))))
  +						(%documented-lambda-list-argument-types documented-lambda-list :error-on-missing-doc nil)))
  +	(concept-implementation-tag (intern (concatenate 'string (symbol-name concept-name) "-IMPLEMENTATON-TAG"))))
       (let* ((implementation-tag-+ (concatenate 'string "+" (symbol-name implementation-tag) "+"))
   	   (implementation-tag-symbol 
   	    (find-or-make-implementation-tag implementation-tag-+ (symbol-name concept-name) doc))
  
positive.code: 	(setf (symbol-value concept-symbol)
  	      implementation-tag-symbol))
        `(progn
  	   
  	 (define-concept-method-impl ,method-name (,concept-check ,@normal-lambda-args) ,@body)))))
  
  
  
negative.code: ;;;; Creates a symbol based on a concept and the typed arguments given 
  ;;;; to it
  (defun %create-concept-symbol (concept-name arg-types &optional (package *concepts-package*) )
    (multiple-value-bind (s present-already) 
        (intern (apply #'concatenate 
  		     'string 
  		     (symbol-name concept-name)
  		     (if (every #'(lambda (type) (eq type 't)) arg-types)
  			 nil
  			 (mapcar #'(lambda (type)
  				     (concatenate 'string
  						  "["
  						  (format nil "~S" type)
  						  "]"))
  				 arg-types)))
  	      package)
      (when (not present-already)
        (setf (symbol-value s) +UNSET-IMPLEMENTATION-TAG+))
      s))
  		       
  		       
  