anchor.diff:               appending p into xp
                appending q into yq
                finally (return (list xp yq)))
  -        (plot/xy x y theme aspect legend labels width filename format)))))
  -
  -(defun plot/polar+a (funcs theta-range theme a-values aspect samples legend labels width filename format)
  +        (plot+xy x y (theme gen) (aspect gen) (legend gen) (get-labels gen) (width gen) (filename gen) (get-format gen))))))
  +
  +(defmethod generate/a ((gen polar-ra) funcs a-values)
     "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))
  +           (let* ((theta (loop for x from (first (range gen)) to (second (range gen)) by (/ (- (second (range gen)) (first (range gen))) (samples gen)) collect x))
                     (r (loop for n in theta collecting (funcall f n a))))
                (list
                 (loop
  
positive.code:              appending p into xp
               appending q into yq
               finally (return (list xp yq)))
          (plot/xy x y theme aspect legend labels width filename format)))))
  
  (defun plot/polar+xya (funcs theta-range theme a-values aspect samples legend labels width filename format)
    "Plot functions of X and Y parameterized by a. `FUNCS` takes two arguments, theta and a. Each curve should be a pair of functions."
    (flet ((func/a (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)))
               (loop for n in theta collecting (funcall f n a)))))
      (destructuring-bind (xfuncs yfuncs) 
          (loop for f in funcs
  
negative.code:          (ry (/ (- height by by) height))
           (surface
            (cond 
              ((eq format 'pdf) (create-pdf-surface filename width height))
              ((eq format 'svg) (create-svg-surface filename width height))
              ((eq format 'ps) (create-ps-surface filename width height))
              (t (error "invalid file format")))))
      (flet ((tx (x)
               (+ bx (* rx (/ (- x minx) (- maxx minx))
  