Note: Hugs is no longer in development. The content on these pages is provided as a historical reference and as a resource for those who are still interested in experimenting with or otherwise exploring the system.
Hugs 98 is a functional programming system based on Haskell
98, the de facto standard for non-strict functional programming
languages. Hugs 98 provides an almost complete implementation of
Haskell 98, including:
- Lazy evaluation, higher order functions, and pattern matching.
- A wide range of built-in types, from characters to bignums,
and lists to functions, with comprehensive facilities for
defining new datatypes and type synonyms.
- An advanced polymorphic type system with type and constructor
- All of the features of the Haskell 98 expression and pattern
syntax including lambda, case, conditional and let expressions,
list comprehensions, do-notation, operator sections, and
wildcard, irrefutable and `as' patterns.
- An implementation of the Haskell 98 primitives for
monadic I/O, with support for simple interactive programs,
access to text files, handle-based I/O, and exception handling.
- An almost complete implementation of the Haskell module
system. Hugs 98 also supports a number of advanced and
experimental extensions including multi-parameter classes,
extensible records, rank-2 polymorphism, existentials, scoped
type variables, and restricted type synonyms.