mostly finished writing code for new function args struct, now I need to
implement it

Its a much cleaner way of doing function args, especally with optional
and rest args, also I can use it to give functions a more uniform
interface, which I've been wanting to do.

Unfortunately implementing this entails going back through and chaniging
a bunch of code. I have the new stuff all written, but it's still going
to be a pain