Super small diff algorithm. I like it.

But a more general question: I guess that in the end we want to configure which diff algorithm to use. It would be nice to have a silver bullet fitting all situations ... but that's not so likely, or? Even a patience diff sometimes wants to fall back to other diffs.

So, isn't it time for a DiffAlgorithm abstraction? Some common superclass of PatienceDiff and MyersDiff? And e.g. PatienceDiff would get an DiffAlgorithm as constructor parameter so it knows to which algorithm to fall back to?