I have been working with flyspell and have found correcting words with flyspell
spectacularly frustrating. 

"flyspell-correct-word" is annoyingly only bound to a mouse click.

"flyspell-correct-word-before-point" is also bound to a mouse click or one can
use "M-x flyspell-correct-word-before-point".

Another big problem is that the menu of possible corrections.that is displayed
covers the buffer.  If I have a long list of completions, the menu covers the text.

Although ispell works better, the way one selects the replacement word is also
cumbersome.

emacs has the icomplete (incremental minibuffer compeltion preview) which works
very well without affecting the viewing of the buffer.  One drawback with icomplete
is that the completions are not shown in a vertical way as done in ivy.

On Apr 27, 2020, Omar Antolín Camarena released icomplete-vertical.el, but the
functionality has not really been introduced in the official emacs and improved upon.

If there was the capability for vertical spelling correction with vertical listing mimicking
ivy, things will be much better for correcting words with flyspell.

Omar Antolín Camarena also wrote orderless.el, a very useful package that provides
orderless completion style in the minibuffer. This would be very good to have in
official emacs as well.