Honestly, I prefer this how it is.  Usually blocks (in a case like `Differ.new { }`) will always (or nearly always) be used but here the more common case is probably that it's not used.  It's unclear at the call site what the block does or represents.  As this grows there may be additional lambda options needed, and using a block for the object prep gives it a place of prominence that I don't think makes sense relative to its role here.