anchor.diff:       (append (list (get-dom-text current "display_location" "full"))
                (mapcar (lambda (field)
                          (get-dom-text current field))
  -                     '("weather" "relative_humidity" "wind_dir"
  +                     '("observation_time" "weather"
  +                       "relative_humidity" "wind_dir"
                          "temp_f" "dewpoint_f" "heat_index_f" "windchill_f"
  -                       "pressure_in" "wind_mph"
  +                       "pressure_in" "wind_mph" "wind_gust_mph"
                          "temp_c" "dewpoint_c" "heat_index_c" "windchill_c"
  -                       "pressure_mb" "wind_kph"))
  +                       "pressure_mb" "wind_kph" "wind_gust_kph"))
                (list 
                 (get-dom-text forecast "conditions")
                 (get-dom-text forecast "high" "fahrenheit")
  
positive.code: 
  (defun display-weather (module message metricp location)
    (handler-case
        (multiple-value-bind (city weather humidity wind-dir
                                   temp-f dewpoint-f heat-index-f windchill-f
                                   pressure-in wind-mph
                                   temp-c dewpoint-c heat-index-c windchill-c
                                   pressure-mb wind-kph
                                   forecast high-f low-f high-c low-c)
            (retrieve-current-weather (api-key-of module) location)
  
          (save-weather-config (orcabot-path "data/weather-throttle.lisp"))
  
          (reply-to message "Current weather for ~a" city)
          (cond
            (metricp
             (reply-to message "~a, Temp: ~aC, Dewpoint: ~aC, ~
                             ~@[Heat Index: ~aC, ~]~
                             ~@[Wind Chill: ~aC, ~]~
                             Humidity: ~a, Pressure: ~amb, ~
                             Wind: ~a ~akph"
                       weather temp-c dewpoint-c
                       (if (string= heat-index-c "NA") nil heat-index-c)
                       (if (string= windchill-c "NA") nil windchill-c)
                       humidity pressure-mb
                       wind-dir wind-kph)
             (reply-to message "Forecast: ~a, High: ~aC, Low: ~aC" forecast high-c low-c))
            (t
             (reply-to message "~a, Temp: ~aF, Dewpoint: ~aF, ~
                             ~@[Heat Index: ~aF, ~]~
                             ~@[Wind Chill: ~aF, ~]~
                             Humidity: ~a, Pressure: ~ain, ~
                             Wind: ~a ~amph"
                       weather temp-f dewpoint-f
                       (if (string= heat-index-f "NA") nil heat-index-f)
                       (if (string= windchill-f "NA") nil windchill-f)
                       humidity pressure-in
                       wind-dir wind-mph)
             (reply-to message "Forecast: ~a, High: ~aF, Low: ~aF" forecast high-f low-f))))
      (weather-error (err)
        (save-weather-config (orcabot-path "data/weather-throttle.lisp"))
  
negative.code: (defmodule weather weather-module ("weather")
    (api-key :accessor api-key-of :initform nil)
    (default-location :accessor default-location-of :initform nil)
    (locations :accessor locations-of :initform (make-hash-table :test 'equal))
    (warning-poll :accessor warning-poll-of :initform nil))
  
  (defmethod initialize-module ((module weather-module) config)
  