Make haskell-align-imports-padding a total function
Print a newline as soon as the command starts to execute.
Only save again after stylish if necessary.
Use end-of-transmission for prompt
Echo extraneous output after prompt has been received

When the REPL spits out more stdout when no command is (ostensibly) in
progress, echo that output before the prompt.

Example case:

λ> forkIO (do threadDelay (1000*1000); putStrLn "yo")
ThreadId 37

yo
λ>

The "yo" is usually just lost in the ether. It also doesn't disturb
your prompt if you're typing in it.

@hvr @cmears might be interested.
Declare use of -insert-garbage
Strip out extraneous prompts
Dump complete output if zero compiler messages from cabal
Fix haskell-debug for recent prompt handling changes.
Strip newlines from haskell-process-do-type