anchor.diff:      (-26 . "Type error")
       (-27 . "Retry unicast")))
   
  -(defmacro slp-error (&body body)
  -  (let ((gerr (gensym "ERROR-CODE")))
  -    `(let ((,gerr (progn ,@body)))
  -       (if (< ,gerr 0)
  -		   (error 'slp-condition
  -				  :code ,gerr
  -				  :message (let ((m (assoc ,gerr *slp-error-messages*)))
  -							 (if m (cdr m) "Unknown error")))
  -		   t))))
  +(defun slp-raise-error (error-code)
  +  (if (< error-code 0)
  +      (error 'slp-error
  +	     :code error-code
  +	     :message (let ((m (assoc error-code *slp-error-messages*)))
  +			(if m
  +			    (cdr m)
  +			    "Unknown Error")))
  +      t))
   
   ;; ------------- foreign calls ---------
   
  
positive.code: 
  (define-register-callback default-deregister-callback
      (handle error-code cookie)
    (format t "Deregister: ~A~%" error-code)
    t)
  
  (defun slp-deregister (url
  
negative.code:   `(defcallback ,name slp-bool
         ((,handle slp-handle)
  		(,attr-list :string)
  		(,error-code slp-error-type)
  		(,cookie :pointer))
       (declare (ignorable ,handle ,attr-list ,error-code ,cookie))
       ,@body))
  