The Hugs 98 User's Guide


Table of Contents
The Hugs 98 License
1. Introduction
1.1. Other sources of information
1.1.1. Other documentation
1.1.2. Mailing lists
2. Using Hugs
2.1. Basic operation
2.2. Loading and editing Haskell module files
2.3. Getting information
2.4. Miscellaneous commands
3. Changing the behaviour of Hugs
3.1. Hugs options
3.1.1. Language options
3.1.2. Module loading options
3.1.3. Specifying a source file editor
3.1.4. Evaluation and printing options
3.1.5. Resource usage options
3.2. Environment variables used by Hugs
3.3. Locale-based character encoding
3.4. Adding packages to a Hugs installation
4. Other ways of running Hugs
4.1. Running standalone Haskell programs
4.2. Compiling modules that use the Foreign Function Interface
4.3. Graphical interface for Windows
5. Hugs vs Haskell 98 and addenda
5.1. Haskell 98 non-compliance
5.1.1. Lexical structure
5.1.2. Expressions
5.1.3. Declarations and bindings
5.1.4. Modules
5.1.5. Predefined types and classes
5.1.6. Other bugs in Hugs
5.2. Addenda to Haskell 98
5.2.1. Foreign Function Interface
5.2.2. Hierarchical Namespace Extension
6. Language extensions supported by Hugs and GHC
6.1. Syntactic extensions
6.1.1. Recursive do-notation
6.1.2. Parallel list comprehensions (a.k.a. zip-comprehensions)
6.2. Type class extensions
6.2.1. More flexible contexts
6.2.2. More flexible instance declarations
6.2.3. Overlapping instances
6.2.4. Multiple parameter type classes
6.2.5. Functional dependencies
6.3. Quantified types
6.3.1. Rank 2 types
6.3.2. Polymorphic components
6.3.3. Existential quantification
6.4. Type annotations in patterns
6.5. Implicit parameters
6.5.1. Implicit-parameter type constraints
6.5.2. Implicit-parameter bindings
7. Hugs-specific language extensions
7.1. Typed records with extensibility
7.2. Restricted type synonyms
7.3. Here documents
7.4. Hugs debugging primitives
7.4.1. Using HugsHood
7.4.2. Differences from Hood
7.4.3. Reporting HugsHood bugs
8. Frequently Asked Questions about Hugs
9. Miscellaneous
9.1. Hugs 98 release history
9.1.1. January 1999 (Beta release)
9.1.2. May 1999
9.1.3. November 1999
9.1.4. February 2001
9.1.5. December 2001
9.1.6. November 2002
9.1.7. November 2003
9.1.8. March 2005
9.1.9. May 2006
List of Examples
4-1. Getting started with WinHugs