This page lists frequently asked questions about Hugs 98, and their answers.
What is the correct name for Hugs?
We use "Hugs" as a generic name for the interpreters we build.
We use a name like "Hugs 1.3", "Hugs 1.4", or "Hugs 98" if we want to identify a version of Hugs that is based on a specific version of Haskell like "Haskell 1.3", "Haskell 1.4", or "Haskell 98". So please note that the "1.4" part in a name like "Hugs 1.4" refers to the version of Haskell, and not to the version of Hugs.
We use release dates to identify specific Hugs releases. For example, if you report a bug in the most recent release, be sure to mention that you observed the problem with the "Hugs 98, Sep 1999" release.
What is the relationship between Hugs and Gofer?
Hugs is the successor to Gofer, and was originally derived from Gofer version 2.30b. But Hugs incorporates many changes and substantial enhancements, and offers much greater compatibility with Haskell.
Who is responsible for Hugs?
Mark P Jones (currently at OGI) wrote the original version of Hugs and wrote much of the code in the current distribution. Other Haskell teams have also contributed to Hugs; the current distribution owes much to other groups. See the latest Hugs news to find out who is doing what.
Who do I send a bug report to?
Please send bug reports to email@example.com. If you send the bug report to an individual, you run the risk that that person is on vacation, is rushing to meet a deadline or just accidentally deletes your mail. Sending to the mailing list gives us all a chance to reply to your bug report.
How do I contact the authors of Hugs?
The hugs-users and hugs-bugs lists reach those currently working on Hugs. Please use more global lists like haskell-cafe or haskell if your question is of wider interest or not specific to Hugs.
Is there a MacOS version of Hugs?
Yes, thanks Hans Aberg's efforts, we have a Power PC version of Hugs is available as part of the main distribution.
Where can I get other Hugs-related tools?
Many packages like Green Card, HDirect, and Fran are important to Hugs users. However, since these pieces of software are continuously evolving we do not package them into the Hugs release directly. At present, please consult haskell.org for pointers to the web pages associated with these projects and download them separately. We hope to make easily installed versions of these available soon at the Hugs web page.
Why doesn't Hugs print string values in the way that I expect?
The rules that Hugs 98 uses to decide how a value should be printed are described in the user manual they are not the same as the rules used in Gofer or in previous versions of Hugs. Those older systems treated strings as an ad-hoc, special case. For example, if you entered an integer in Gofer, then it would print an integer. But if you entered a string, it wouldn't actually print that string; instead, it would execute a program to output the characters of the string one after the other. Hugs 1.3 provides a more consistent approach; if you enter a string, then a string is what you get. But if you really want to run a program that outputs the string, then you must specify this explicitly, typically using the builtin putStr function:
? "first\nsecond" -- print a string "first\nsecond" ? putStr "first\nsecond" -- a program to output a string first second ?
Few C programmers would confuse a string "hello, world" with a command printf("hello, world"); but that's exactly what Gofer has been encouraging functional programmers to do. Once you get used to it, I think you'll probably agree that the new approach is much better than the old one.
Does Hugs implement everything in Haskell 98?
Not quite. Mutually recursive modules are not supported yet, and there are a few other minor discrepancies. See the Hugs 98 User's Guide for full information.
Can I create executable programs with Hugs or do I always have to run programs from the development environment?