I don't think this code should work, but it does (in Scala 2.10):

```
scala>     ((i: Int) => i.toString match {
     |        case s if s.length == 2 => "A two digit number"
     |        case s if s.length == 3 => "A three digit number"
     |     }): PartialFunction[Int,String]
res0: PartialFunction[Int,String] = <function1>

// other interactions omitted

scala> res0.orElse(PartialFunction((i: Int) => i.toString))
res5: PartialFunction[Int,String] = <function1>

scala> res5(1)
res6: String = 1

```

How does it work? I would expect a `MatchError` to be thrown inside `res0`.

The Scala language specification does not seem to explicitly document how `res0` should be interpreted.