anchor.diff:  (defstruct (url (:constructor make-url%)
   		(:predicate url-p%))
     "URL type."
  -  (scheme nil :type symbol)
  +  (scheme% nil :type symbol)
     (address% nil :type (or string common-address)))
   
   (defun common-address-string (common-address)
  
positive.code: 	  (common-address-port common-address)
  	  (common-address-path common-address)))
  
  (defun url-address (url)
    "Get address for URL."
    (if (common-address-p #1=(url-address% url))
        (common-address-string #1#)
        #1#))
  
  (defun url-user (url)
    "Get user for URL."
    (when (common-address-p #1=(url-address% url))
      (common-address-user #1#)))
  
  (defun url-password (url)
    "Get password for URL."
    (when (common-address-p #1=(url-address% url))
      (common-address-password #1#)))
  
  (defun url-host (url)
    "Get host for URL."
    (when (common-address-p #1=(url-address% url))
      (common-address-host #1#)))
  
  (defun url-port (url)
    "Get port for URL."
    (when (common-address-p #1=(url-address% url))
      (common-address-port #1#)))
  
  (defun url-path (url)
    "Get path for URL."
    (when (common-address-p #1=(url-address% url))
      (common-address-path #1#)))
  
  (define-condition malformed-url (error)
    ((message :type string
  
negative.code: 
  (defun url= (url-x url-y)
    "Test URL-X and URL-Y for equality."
    (let ((url-x (url url-x))
          (url-y (url url-y)))
      (and (eq (url-scheme% url-x) (url-scheme% url-y))
           (equal (url-user url-x) (url-user url-y))
           (equal (url-password url-x) (url-password url-y))
           (equal (url-host url-x) (url-host url-y))
           (equal (url-port url-x) (url-port url-y))
           (equal (url-path url-x) (url-path url-y)))))
  
  (defun url-scheme-string (scheme)
    "Return string for SCHEME."
  