Changing a function's interface but staying backward compatible

In this tip, see ways you can change how a function is called without having to modify all calling code at the same time.