
Hi,
I have now committed hat-gui, with support for only hat-stack.
This version requires a split version of HatStack, where the existing
HatStack.hs is divided into HatStack.hs for the libary and
HatStackText.hs for the console input/output. Since this breaks the
makefile's for Linux, and is a reasonable amount of restructuring, I
thought I'd send the new versions of HatStack and HatStackText for
comments first. They are attached. Is this split/names/interface
acceptable?
Thanks
Neil
On 7/6/06, Neil Mitchell
Hi
I agree that splitting every tool module into a "model" module with a nice API and a textual "view" module is a very good idea. I wouldn't yet introduce any directory hierarchy (the hierarchical name space isn't Haskell 98 anyway). I think it would be slightly more meaningful if the models would keep the original names and the views be named e.g. HatStackText.
Thats fine by me - I wouldn't have thought using hierarchical module names would be a massive problem though, since every supported Haskell compiler has them, and hat-trans looks as though it depends on them (generating Hat.Something files) - but it doesn't make much difference to me. If we ever wanted to provide Hat as a library for external programs, as seems to be the trend (for example HsColour and Cpphs) then hierarchical modules would be required.
Do you plan extensions of the user interface? For a long time I thought it would be nice to make hat-observe source-oriented: Make it a source browser in which you can mark any expression and then this expression is observed. This could even be combined with hat-cover, because obviously you should not be able to observe a slice of code that was never executed.
My only planned extension is to have a continually available Source window at the bottom of each pane, which is sync'd with the tool - for example clicking on each line in hat-stack will jump to that line and similarly for hat-observe. Of course, there is no reason that I can't add links back from the source to hat-observe, and this source window can certainly have hat-cover applied to it.
Once we have a "design" for the tool library/console split I will commit my hat-gui and then anyone is welcome to add stuff to it!
Thanks
Neil