The attached diff implements a PartialFunction analogue to scala.runtime.AbstractFunctionN. It takes the smallest possible footprint approach to the change, to avoid any possibility of a bare match block being interpreted as a plain Function (rather than properly a PartialFunction).
This trims about 9k of uncompressed class file size from every bare match block used as a PF. It may well speed up the use of PFs, as well, since all the trait stubs are reified in the AbstractPF class and not in every PF.
For scala-library.jar, this reduces total size a very minor amount (60k):
$ ls -l dists/scala-2.10.0.r25850-b20111018225736/lib/scala-library.jar
rw-r r- 1 tvierling tvierling 8697074 2011-10-18 23:13 dists/scala-2.10.0.r25850-b20111018225736/lib/scala-library.jar
$ ls -l build/pack/lib/scala-library.jar
rw-r r- 1 tvierling tvierling 8633048 2011-10-19 15:25 build/pack/lib/scala-library.jar
The gain is much more likely to be noticeable with Lift or other frameworks that work heavily with bare match blocks as PFs. I plan on submitting diffs under separate cover to make explicit use of scala.runtime.AbstractPartialFunction, to trim related cases where code is explicitly inheriting from the PF trait today.