extra code beautification step
maintain the original spacing when adding parentheses
adding code to differentiate user functions that need parameters with user functions that don't need parameters
minor debug printout change
explicitation of implicit calls and capturing of expressions to adjust the "times" notation now take into account whether the user-defined functions consume parameters or not. Added several tests and modified a few.
draft (and unreachable) code to rearrange color commands
adding comment
removing unnecessary error check in debug printout
the binding/unbinding of functions to their arguments is now done by separate functions, to break down things better.