Hmm.  I would agree if `save()` was defined in `TextEditor`, but since it's defined in `Editor`, it wouldn't make sense for some other kinds of editors (image, for instance).  The way I see it, in an `Editor`, `save()` is responsible for saving a document properly and handling anything that involves.

We don't know where `(Editor).save()` is going to get invoked in the future, and it shouldn't be the responsibility of the caller to 1. find out whether the whitespace preference is turned on and 2. figure out whether the editor is a TextEditor and pass the whitespace parameter iff true.