Why do you think it is an abuse of notation? nargs is a property needed for
an uncalled function. Once it's called, there is no reason to have it
around (other than the fact that it's inherited). Since it's going to be
inherited, why not make it mean something useful after the application?

If you are opposed to this then I would prefer that we go with your
changes: nargs is always a tuple. But Aaron doesn't like that. I'm trying
to compromise by making the unapplied case have the tuple and the applied
case have the integer.