I am using haskell inside emacs with the usual setup ie .hs file in one window, ghci in another.

Now the most usual workflow one would do is to load the file into ghci (C-c C-l) and try out something in ghci.
A small niggle is that after the C-c C-l Ive to manually switch to the other window (current window does not switch to ghci automatically)
This seems to be a strange default

More importantly the state of the workspace in ghci seems to get messed up unless I do:
0. Prepare some code in .hs
2. Switch to ghci
3. Clear the ghci workspace with :m <nothing>
4. switch back to .hs
5. C-c C-l
6. Switch to ghci to try out new code

Is there something I am missing?