Make StyledDocument an interface, with read-only and editable implementations.
Publish also "rich" changes from replaceText.
Generalize replaceText().
StyledDocument & Paragraph implement CharSequence.
Add replace(start, end, StyledDocument) method.
Publish rich changes from setStyle(...) methods.
Expose rich changes on StyledTextArea.