Let us reuse examples from Daily scala :
type PF = PartialFunction[Int,Int] val pf1 : PF = {case 1 => 2} val pf2 : PF = {case 2 =&
Why not simply :
def compose[A,B,C](f: PartialFunction[A, B], g: PartialFunction[B, C]) : PartialFunction[A, C] = Function.unlift(f.andThen(g.lift))