anchor.diff:                 (when (and (or (listp value)
                                 (vectorp value))
                             (not (assoc :color alist)))
  +                 (alpha)
                    (add-pigment "color" (pov-rgb value))))
  +              (:alpha) ;; handled in color case
                 (:color
  +               (alpha)
                  (add-pigment "color" (pov-rgb value)))
  -              (:alpha
  -               (unless has-image-map
  -                 (push (pov-alpha value) pigments)))
                 (:specular
                  (add-finish "specular" (avg-rgb value)))
                 (:index-of-refraction ; TODO
  
positive.code:                (push (pov-item name finish) finishes))
               (add-pigment (name pigment)
                 (unless has-image-map
                   (push (pov-item name pigment) pigments))))
        (loop for (property . value) in alist
           do (case property
                (:ambient
  
negative.code:                ;; TODO: assumed uv mapping
                 (push (pov-value "uv_mapping") pigments))
                (otherwise (error "Unknown texture property: ~A" (cons property value))))))
      (pov-texture (nconc (when pigments
                            (list (pov-pigment pigments)))
                          (when finishes
                            (list (pov-finish finishes)))))))
  
  
  (defstruct (pov-version (:constructor pov-version (value)))
  