   `(let [stroke# ~stroke
          previous-stroke# (quil.core/current-stroke)]
 
-     (cond (not stroke#) (quil.core/no-stroke)
-           (sequential? stroke#) (apply quil.core/stroke stroke#)
+     (cond (sequential? stroke#) (apply quil.core/stroke stroke#)
            true (quil.core/stroke stroke#))
 
      ;;return the value from body, not from the if after it.

  "Sets the color used to draw lines and borders around shapes. This
  color is either specified in terms of the RGB or HSB color depending
  on the current color-mode (the default color space is RGB, with
  each value in the range from 0 to 255)."
  ([gray]
    ; provided color might be passed from (current-fill) in which case it's a vector.
    ; In that case just call fill again applying vector to the (fill).
   (if (vector? gray)
     (apply stroke gray)
     (do
       (.stroke (current-graphics) (float gray))
       (save-current-stroke [gray]))))
  ([gray alpha]
   (.stroke (current-graphics) (float gray) (float alpha))
   (save-current-stroke [gray alpha]))

  [color]
  (swap! (internal-state) assoc :current-fill color))

(declare no-fill)

(defn
  ^{:requires-bindings true
    :processing-name "fill()"
