Change repeated arguments from one type to a list of types to support ca...

...se function.
Everything else seems straightforward.  What's this for, though?