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 class
  overloading.
* 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.

Homepage:
https://www.haskell.org/hugs/
