anchor.diff:               appending xl into xp
                appending yl into yp
                finally (return (list xp yp)))
  -        (plot/xy x y
  -                 :aspect aspect
  -                 :palette palette
  -                 :legend legend
  -                 :labels labels
  -                 :width width
  -                 :filename filename
  -                 :format format)))))
  -
  -(defun plot/polar+xy (funcs &key (theta-range (list 0 (+ pi pi))) (aspect 1.0) (samples 200) (background (list 0.2 0.2 0.2)) (palette '((1.0 0.2 0.2) (0.2 1.0 0.2) (0.2 0.2 1.0)))
  -                              (legend nil) (labels nil) (width 800) (filename "plot2d.pdf") (format :pdf))
  -  "Plot polar functions of X a
  -nd Y. Each `FUNCS` takes one argument, theta. Each curve should be a pair of functions."
  +        (plot/xy x y theme aspect legend labels width filename format)))))
  +
  +(defun plot/polar+xy (funcs theta-range theme aspect samples legend labels width filename format)
  +  "Plot polar functions of X and Y. Each `FUNCS` takes one argument, theta. Each curve should be a pair of functions."
     (flet ((func/r (f)
              (let* ((theta (loop for x from (first theta-range) to (second theta-range) by (/ (- (second theta-range) (first theta-range)) samples) collect x)))
                (loop for n in theta collecting (funcall f n)))))
  
positive.code:              appending p into xp
               appending q into yq
               finally (return (list xp yq)))
          (plot/xy x y
                   :aspect aspect
                   :palette palette
                   :legend legend
                   :labels labels
                   :width width
                   :filename filename
                   :format format)))))
  
  (defun plot/polar+a (funcs &key (theta-range (list 0 (+ pi pi))) (a-values '(1.0)) (aspect 1.0) (samples 200) (background (list 0.2 0.2 0.2)) (palette '((1.0 0.2 0.2) (0.2 1.0 0.2) (0.2 0.2 1.0)))
                       (legend nil) (labels nil) (width 800) (filename "plot2d.pdf") (format :pdf))
    "Plot a polar-coordinate function (or list of functions) parameterized by a. `FUNCS` takes two arguments, theta and a."
    (flet ((func/ar (a f)
             (let* ((theta (loop for x from (first theta-range) to (second theta-range) by (/ (- (second theta-range) (first theta-range)) samples) collect x))
  
negative.code: (defgeneric generate (gen funcs))
  
  (defmethod generate ((gen plot2d) funcs)
    (plot/ funcs (range gen) (theme gen) (aspect gen) (samples gen) (legend gen) (get-labels gen) (width gen) (filename gen) (get-format gen)))
  
  (defmethod generate ((gen polar-r) funcs)
    (plot/polar funcs (range gen) (theme gen) (aspect gen) (samples gen) (legend gen) (get-labels gen) (width gen) (filename gen) (get-format gen)))
  
  (defun plot (gen funcs &key filename width theme range aspect format labels legend)
    (when width
  