A much simpler approach giving essentially all the benefits would be to have a signal (presumable OS dependant) which causes hugs execute a reload of the top level module (with the current accompanying loading of any imported modules which have changed) upon recipt of a signal of some sort, then arrange for that signal to be sent upon moving the mouse cursor into an evaluation window in a programmable editor (eg emacs). That way you can...
You may want to check out the following mail which describes something similar to your "reload on signal" idea: http://www.mail-archive.com/hugs-users@haskell.org/msg00523.html Instead of a signal, I modified winhugs to execute the commands in a standard "autoload file" whenever the mod time on the file changed. By writing to the file in emacs you can control winhugs. Doesn't sound like much, but is nice in practice, especially if you are learning Haskell and go through the edit-run cycle hundreds of times while deciphering inscrutable error messages :-) The signal approach would be cleaner. And I shouldn't have used the term "autoload" because it already means something else in winhugs. Stephen Milborrow