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

    :added "1.0"}
  fill
  "Sets the color used to fill shapes. For example, if you run fill(204, 102, 0),
  all subsequent shapes will be filled with orange.  This function casts all input as a float"
  ([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 fill gray)
     (do
       (.fill (current-graphics) (float gray))
       (save-current-fill [gray]))))

  ([gray alpha]
   (.fill (current-graphics) (float gray) (float alpha))

  "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).
  If nil is passed it removes any fill color; equivalent to (no-stroke)."
  ([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).
   (cond (vector? gray) (apply stroke gray)
         (nil? gray) (no-stroke)
         true (do
                (.stroke (current-graphics) (float gray))
                (save-current-stroke [gray]))))
  ([gray alpha]
   (.stroke (current-graphics) (float gray) (float alpha))
   (save-current-stroke [gray alpha]))
