Haskell Programming Environment

Sengan Baring-Gould senganb@ia.nsc.com
Wed, 25 Oct 2000 10:21:42 -0600 (MDT)

> Hello,
> I'm writing my master thesis. Its subject is 'Haskell Programming
> Environment'. It is (or rather will be) an extended text editor working i=
> n
> graphical (XFree86) environment designed for Haskell programmers. It will=
>  be
> implemented using Fudgets library.
> I'm wondering what features would you like to find in such environment. W=
> hat
> should be neccessary, what would help, what would make writing programs
> easier, etc.
> I have some concepts, but I would like to hear some suggestions from you.
> Thanks for all answers.

a) the ablility to highlight an area of code and get its type (be it a function,
   or some well-formed chunk of code
b) the ability to highlight a function and get its definition in another area
   (think multiple text editing in vim)

c) interaction with hugs/stg-hugs so that just written code can be pasted into
   a "hugs window" for evaluation.

d) Debug mode which automatically adds "deriving show" to all datatypes which
   are not showable/adds exporting of all Datatypes as non-abstract for use in
   hugs to just allow things to be tried out.

e) Debug mode which invisibly replaces functions such as "fromJust" with error
   making versions (... fromJust' "the file and line at which I'm invoked" ...)
   to make it easier to find the cause of the error (fromJust Nothing just comes
   up with an error telling you that it's fromJust that failed. Last time that
   happened, I hacked hugs to dump the evaluation stack, from which I guessed
   which possible fromJusts it could have been).

f) Use ghc's .hi file to allow strictness of arguments to appear if you leave
   the mouse over an argument.

g) For bonus points (harder, but really useful when stuck):
   given an expression, show me (possibly using daVinci) how it gets evaluated:
   Lazyness behaviour is not always obvious, I'd like to see it.

I've been wanting to code one of these myself, but have had no time. Try and see
if stg-hugs is useable yet since that would be a much better environment to do
it in.