Hello Mark,

I am currently carrying out a software training course
in Haskell. We use your Hugs for programming in Haskell.

First: Thank you very much for writing this wonderful system 
(this praise is for relativizing the criticism below ;-)
Hugs made it possible to move from Miranda^*, which we used for years
before, to Haskell.

Due to the lack of documentation for Hugs I compiled a user manual
from the various Gofer documents for my students. I'd be happy
to contribute this to the Hugs distribution. 
There is also a TeX version of a types-only standard prelude.

I also wrote a special Hugs mode for XEmacs. It features:

- Fontification for Haskell, using the font-lock-mode, and simple 
  editing assistance. 
- Inferior shell running Hugs.
- Co-operation between XEmacs and Hugs, eg. an XEmacs buffer may be 
  sent to Hugs and calling the editor from Hugs pops up the
  corresponding XEmacs window (possibly first loading the file and 
  going to a specific line).

It's really nice, you just need a fast workstation for XEmacs ;-)

Finally, you don't distribute a PC executable for Hugs 1.01.
One of my students compiled one for DOS and OS/2.

You may add all these things to your Hugs distribution. You can 
download them from my Hugs page at
        http://www-i2.informatik.RWTH-Aachen.de/SWP/Hugs/index.e.html


Now to some problems I had with Hugs:

There is no remark about the difference between version 1.01 and 1.0.
The WWW-pages don't mention version 1.01 at all.
(I first intended to use version 1.0 because of the PC executable,
until I found a bug which is gone in 1.01).

I came across *2 BUGS* in Hugs 1.01:

* non-trivial conformal definitions with lists don't work:
        [x,'a'] = []
  causes
        INTERNAL ERROR: compileGlobalFunction

* much more annoying is that automatic derivation of instances of
  class Text doesn't work. Only definitions for showsPrec,
  showList and readList are created, none for readsPrec.
  You may define
        data TestD = Hi deriving Text
  and it compiles fine, however, evaluating
        (read "") :: TestD
  gives
        Program error: {_undefined_member (Text-TestD readsPrec)}

It's a bit irritating that the type IO is predefined, but no
monadic IO implemented.

*I'd be very interested in what you intend about the future of Hugs.*

The lack of a module system is very annoying when you program
a software system and want to teach students the merits
of software engineering. (My students were a bit surprised when,
after explaining them the Haskell module system, I told them that
Hugs doesn't know about it, but we just do as if it did :-).
However, having read your documentation of the internals of Gofer
I see the problem.

We intend to program a larger software system in Haskell
(several M.Sc. thesis's) in the future and would like to use
Hugs for developement, and ghc just for final compilation.
Hence more Haskell 1.3 features (records?) would be appreciated.

However, I know that time is a limited resource ;-)


Best regards,

Olaf


^* Miranda is a trademark of Research Software Limited. ;-)

-- 
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
             Tel: (+49/0)241/80-21212; Fax: (+49/0)241/8888-217
             URL: http://www-i2.informatik.rwth-aachen.de/~chitil/

Reply via email to