anchor.diff:          ;; Jeffrey C. Brunskill
           (let* ((temp-f (read-from-string temp-f))
                  (summary (cond
  -                         ((search "rain" weather :test #'char-equal) "raining")
  -                         ((search "sleet" weather :test #'char-equal) "sleeting")
  -                         ((search "snow" weather :test #'char-equal) "snowing")
  -                         ((search "hail" weather :test #'char-equal) "hailing")
  -                         ((> temp-f 100) "hell")
  -                         ((> temp-f 90) "hot")
  -                         ((> temp-f 80) "warm")
  -                         ((> temp-f 60) "nice")
  -                         ((> temp-f 50) "brisk")
  -                         ((> temp-f 40) "chilly")
  -                         ((> temp-f 32) "cold")
  -                         (t "freezing"))))
  -          (reply-to message "Current weather for ~a: ~a?!? It's fucking ~a."
  -                    city
  -                    (if metricp temp-c temp-f)
  -                    summary)))
  +                          ((search "rain" weather :test #'char-equal) "raining")
  +                          ((search "sleet" weather :test #'char-equal) "sleeting")
  +                          ((search "snow" weather :test #'char-equal) "snowing")
  +                          ((search "hail" weather :test #'char-equal) "hailing")
  +                          ((> temp-f 100) "hell")
  +                          ((> temp-f 90) "hot")
  +                          ((> temp-f 80) "warm")
  +                          ((> temp-f 60) "nice")
  +                          ((> temp-f 50) "brisk")
  +                          ((> temp-f 40) "chilly")
  +                          ((> temp-f 32) "cold")
  +                          (t "freezing"))))
  +          (if alerts
  +              (reply-to message "Current weather for ~a: ~a?!? There's a fucking ~:{~a~*~:^, and a fucking ~}."
  +                        city
  +                        (if metricp temp-c temp-f)
  +                        alerts)
  +              (reply-to message "Current weather for ~a: ~a?!? It's fucking ~a."
  +                        city
  +                        (if metricp temp-c temp-f)
  +                        summary))))
       (weather-error (err)
         (save-weather-config (data-path "weather-throttle.lisp"))
         (reply-to message "~a: ~a" (source message) (message-of err)))))
  
positive.code: (defun retrieve-current-weather (key location)
    "Retrieves the current weather via wunderground.  Returns its stats
  in multiple values.  May raise a weather-error."
    (let* ((root (query-wunderground key "conditions/forecast" location))
           (current (find-dom-node root '("current_observation")))
           (forecast (find-dom-node root '("forecast" "simpleforecast" "forecastdays" "forecastday"))))
      (values-list
       (append (list (get-dom-text current "display_location" "full"))
               (mapcar (lambda (field)
  
negative.code:       (multiple-value-bind (city local-time weather icon humidity wind-dir
                                   temp-f dewpoint-f heat-index-f windchill-f
                                   pressure-in wind-mph wind-gust-mph
                                   temp-c dewpoint-c heat-index-c windchill-c
                                   pressure-mb wind-kph wind-gust-kph
                                   forecast high-f low-f high-c low-c alerts)
            (retrieve-cached-weather (api-key-of module) location)
          (declare (ignore icon humidity wind-dir dewpoint-f
                           heat-index-f windchill-f pressure-in wind-mph
                           wind-gust-mph dewpoint-c heat-index-c
                           windchill-c pressure-mb wind-kph
                           wind-gust-kph forecast high-f low-f high-c
                           low-c))
  
          (save-weather-config (data-path "weather-throttle.lisp"))
          (setf local-time (ppcre:regex-replace "^Last Updated on " local-time ""))
  