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.
