As much code as possible should be moved out of `hasHints()`. This function gets called once on every type character. It gets called a twice when there are hints to show!

Any extra data needed to determine exclusion can be stored in `this.info` in case `insertHint()` gets called.