anchor.diff:  (defun lon-to-x (lon) lon)
   (defun lat-to-y (lat)
     (let* ((sinx (sin (deg-to-rad (clamp lat -86.0 86.0))))
  -         (result (rad-to-deg (* 0.5 (log (/ (+ 1.0 sinx) (- 1.0 sinx)))))))
  +         (result (rad-to-deg (* 0.5
  +                                (log (/ (+ 1.0 sinx)
  +                                        (- 1.0 sinx)))))))
       (clamp-y result)))
   
   (defclass pos () ((x :initarg :x)
  
positive.code:                  :viewport viewport
                   :results results))
  
  (defmacro defsample (&rest args)
    `(push (make-sample ,@args) *samples*))
  
  (load (merge-pathnames "samples.lisp" *load-truename*))
  
  (format *error-output* "Num samples: ~a~%" (length *samples*))
  (format t "~a~%" (json:encode-json-to-string *samples*))
  
negative.code: (defmacro relevant (&rest args)
    `(make-result 'relevant ,@args))
  
  (defmacro irrelevant (&rest args)
    `(make-result 'irrelevant ,@args))
  
  (defclass sample ()
    ((query :initarg :query)
     (locale :initarg :locale)
  