anchor.diff:  the luhn algorithm: http://en.wikipedia.org/wiki/Luhn_algorithm"))
   
   (defun check-valid (cc-data &key
  -				 require-avs
  -				 require-cv
  -				 error-p
  -				)
  +		    require-avs
  +		    require-cv
  +		    error-p
  +		    )
     (:documenation "Check that a cc-data like structure has enough data to
   complete a transaction.
   Can optionally require that AVS verification, Card Verfication data be present.
  
positive.code: 
  ;;;; Conditions
  
  
negative.code: (defgeneric sale (processor cc-data amount &key &allow-other-keys)
    (:documentation "Do a one time charge on a credit card for an amount using
  the given processor. Other provided keys are up to the processor to interpret
  or ignore.
  
  Returns the transaction's unique identifier if successful."))
  
  (defgeneric authorize (processor cc-data amount &key &allow-other-keys)
    (:documentation "Do a pre-authorization without capture returning a
  transaction identifier that can later be used with preauth-capture."))
  
  (defgeneric preauth-capture (processor transaction-id &key amount &allow-other-keys )
    (:documentation "Capture a charge that was previously authorized with authorize.
  Some processors allow capturing a different amount than was originally authorized."))
  
  (defgeneric void (processor transaction-id &key &allow-other-keys)
    (:documentation "Void a previous transaction."))
  
  ;;;; Data Container and functions to validate it
  
  