This module provides a new keyword, multi, to put before subroutine
declarations, which permits multiple distinct function bodies to be
provided, which take different parameters. A call to a multi sub will
invoke whichever function body best fits the arguments passed.