now also noFill and noStroke can be used as qualifiers. Test case in detailed descrtiption.

background black
rotate 1
fill red
box
noFill rect
noStroke peg
ball
eliminating redundant debug printout
draft implementation of color rearrangement + tests
adjustments to color commands reshuffling code + more tests
small adjustment to regex to rearrange color commands - added test case
replacing "avoidLastArgumentInvocationOverflowing" function with much better mechanism, added tests
adding error messages to malformed color commands
correcting regex in error detection of malformed color commands, as some of the demos stopped working
now blocks of code can be passed to user-defined functions as well, omitting the arrow. Added test case, see extended description.

a = (code) -> code()

a <ball>

a
▶rect
▶peg
fixes to mechanism that adds parens to the last argument before the function chaining. Added test.
added "run" function so one can do "run variableContainingCode 2" . More examples in the added test cases
refining the mechanism to add parens to last argument before a function chaining to cater for the example in the extended description (and in test case)

input:
 f = (a,b)-> rotate a run b
 f 2 * sin time, <ball>

expected:
 f = (a,b) -> rotate a, -> run b
 f 2 * sin(time), ball
automatically building the regex for the colour literals from the existing colour literals list
removing all doOnce arrows. New syntax is without arrows, same as "times"
cleaning up some of the regexes for the color rearrangements - they were very slow. Much faster now, and clearer, so it's a win-win.
clarifications to documentation