This is required currently, because there's no other internal way to tell from a formatter if they're compliant if they inherit from one of ours and then override one of the single arg methods. 

I'd like most people to not inherit from our formatters, as they can just implement what they need rather than the full interface now

An alternative is to maintain a list of compatible formatters and have formatter developers add them to that list when the formatter is required.