anchor.diff:    (+ x y))
   
   (implement-concept 
  -    (foobar impl-generic "GENERIC foobar implementation")
  +    (foobar impl-generic "GENERIC foobar implementation" :default-implementation t)
     (x y)
     (- x y))
   
  
positive.code:   
  
  	
  
  ;;;;
  ;;;; Define a particular concept
  ;;;; This just makes it's name available in the current concepts package
  ;;;; (or the given concepts package, defautls ot current)
  (defmacro define-concept (concept-name concept-args doc &key (package *concepts-package*) (error-when-duplicate-concept t))
    (let ((concept-method (intern (concatenate 'string (symbol-name concept-name) "-METHOD")))
  	(concept-method-impl (intern (concatenate 'string (symbol-name concept-name) "-METHOD-IMPL"))))
      (with-concepts-package package
        (if (and (find-symbol (symbol-name concept-name) *concepts-package*)
  	       error-when-duplicate-concept)
  
negative.code: 	      (eval-when (:load-toplevel :execute)
  		(proclaim `(special ,concept-symbol)))
  	      (setf (documentation concept-symbol 'VARIABLE) doc)
  	      (setf (symbol-value concept-symbol) +UNSET-IMPLEMENTATION-TAG+)
  	      ;; create the concept list in package if needed
  	      (if (not (find-symbol (symbol-name '+concept-list+) *concepts-package*))
  		  (let ((concept-list (intern (symbol-name '+concept-list+) *concepts-package*)))
  