anchor.diff:                (let ((problem (src/parser:parse-problem problem-file))
                       (svg-filename (format nil "~A.svg" problem-file)))
                   (draw-problem problem :filename svg-filename))
  -            (error () (format t "~A~%" problem-file))))
  +            (error (e) (format t "~A:~A~%" problem-file e))))
           (directory problem-folder)))
   
  
positive.code:     (draw group (:line :x1 a2 :y1 a2 :x2 a2 :y2 a1))
      (loop for i from 1 to (1- *steps*)
         do (let ((cur-a (+ *border* (* i step))))
              (draw group2 (:line :x1 cur-a :y1 a3 :x2 cur-a :y2 (+ *scale* a3)))
              (draw group2 (:line :x1 a3 :y1 cur-a :x2 (+ *scale* a3) :y2 cur-a))
              (draw group (:line :x1 cur-a :y1 (- *border* a3) :x2 cur-a :y2 (+ *border* a3)))
              (draw group (:line :x1 (- *border* a3) :y1 cur-a :x2 (+ *border* a3) :y2 cur-a))
              (draw group (:line :x1 cur-a :y1 (+ *scale* (- *border* a3)) :x2 cur-a :y2 (+ *scale* (+ *border* a3))))
  
negative.code:   (let* ((polygons (src/types:silhouette problem))
           (lines (src/types:skeleton problem))
           (bounding-box (reduce #'bounding-box-union (mapcar #'cl-geometry::construct-bounding-box polygons)))
           (x-min (cl-geometry::x-min bounding-box))
           (x-max (cl-geometry::x-max bounding-box))
           (y-min (cl-geometry::y-min bounding-box))
           (y-max (cl-geometry::y-max bounding-box))
           (*x-shift* (if (or (> x-max 1) (< x-min 0))
                          (/ (- 1 (+ x-min x-max)) 2)
                          0))
           (*y-shift* (if (or (> y-max 1) (< y-min 0))
                          (/ (- 1 (+ y-min y-max)) 2)
                          0))
           (max-size (max (- x-max x-min) (- y-max y-min)))
           (*border* (if (> max-size 1)
                         (+ *border* (round (/ (* *scale* (- max-size 1)) 2)))
                         *border*))
           (size (+ *scale* (* 2 *border*))))
      (with-svg-to-file
  