As much as @samphippen made a much needed refactor to this, I'd rather the public interface was `Differ` and the internal `Differ` was renamed something appropriately... WDYT @phiggins @samphippen @myronmarston