WIP: Call overload

@stevengj Turning this into a PR so that I can comment on it easier.
are you allowed to mutate args[1]? i thought it sometimes was a pointer to the data area of a tuple