Use a writer monad in the Terminfo backend.
Use a writer monad in the Terminfo backend.

The main benefit, besides simplifying the code, is that we
now draw all parts of a line change in one terminal action.
This prevents "flicker" from the cursor appearing briefly
in an intermediate state.

ghc/packages-haskeline,judah/haskeline,judah/haskeline,leroux/packages-haskeline,ghc/packages-haskeline