In September 1991, Mark Jones released a functional programming system called Gofer, which provided a compact, portable implementation of a Haskell-like language. The system also included experimental type system extensions, many of which later became part of Haskell. On Valentine's Day 1995, Mark released Hugs (Haskell User's Gofer System), a derivative of Gofer with greater Haskell compliance. Hugs versions are named after the version of Haskell they support; Hugs 98 was released in January 1999. Mark gave up the maintainership of Hugs in January 2000.
Hugs 98 still aims to be a fairly lightweight, portable implementation, and now adheres closely to Haskell 98. It also supports several extensions shared with other Haskell implementations:
Hugs supports standardized extensions (addenda) to Haskell 98, for interfacing to foreign languages and structuring the module space.
With the appropriate options (see Section 3.1.1), it is also possible to turn on a number of language extensions, most of which are also supported by the Glasgow Haskell Compiler (GHC), though some are specific to Hugs.
Hugs comes with a large collection of libraries, also shared with other Haskell implementations, and described in separate documentation.
This was the definitive reference for earlier versions of Hugs, though parts of it are now out-of-date. Much of it remains relevant, particularly Section 7 on Hugs extensions, and it should be consulted in several areas that this Guide does not cover well. The manual is available in several formats: HTML, PDF, gzipped Postscript, gzipped tar-ed html, dvi, WinHelp(zipped) and HTMLHelp(win32 help format).
The definitive reference for the Haskell 98 language and standard libraries, published by Cambridge University Press, and also available online.
A collection of libraries shared by Haskell implementations, including Hugs.
General information about functional programming.
More information about Haskell may be found on the Haskell home page and the Hugs home page.
There are a number of mailing lists where people discuss Hugs and Haskell, all with archives of past postings:
This is the place for general discussion about using Hugs.
Use this list for reporting bugs. This is more likely to be effective than direct mail to the authors or maintainers of Hugs. We do read this mailing list – but so do many other people, who might be able to give you more appropriate or timely advice than us! Before reporting a bug, check the list of known deviations from Haskell 98 (see Section 5.1).
Discussion of the development of Hugs takes place on this list. This list also receives commit messages from the Hugs CVS repository.
An informal list for chatting about Haskell. This is an ideal place for beginners to get help with Haskell, but Hugs-specific questions would be better directed at the Hugs lists.
A lower-volume list for more technical discussion of Haskell. Please do not post beginner questions or Hugs-specific questions to this list.
There are several other Haskell-related mailing lists served by www.haskell.org. See http://www.haskell.org/mailman/listinfo/ for the full list.
Some Haskell-related discussion also takes place in the Usenet newsgroup comp.lang.functional.