It diffs two things, so Differ seems like the obvious name. If you have a better suggestion...

> extend the Differ interface. 

That makes no sense whatsoever. The interface has a different siganture. Also, we'd not be make any polymorphic use of it with this thing. So why would we try binding this to the interface?