anchor.diff:  (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 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)
  
positive.code:   (multiple-value-bind (metricp setp location)
        (parse-weather-args module message args)
      (cond
        ((not setp)
         (display-weather module message metricp location))
        ((null args)
         (reply-to message "You must specify a location to set."))
        ((message-target-is-channel-p message)
         (setf (gethash (first (arguments message)) (locations-of module)) location)
         (save-location-db (locations-of module)
  
negative.code:      (append (list (get-dom-text current "display_location" "full"))
               (mapcar (lambda (field)
                         (get-dom-text current field))
                       '("observation_time" "weather"
                         "relative_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"))
               (list 
                (get-dom-text forecast "conditions")
                (get-dom-text forecast "high" "fahrenheit")
  