Language extensions in nhc98

What language extensions does nhc98 support?

Extensions of the Haskell'98 language available in nhc98 include:

  • A Binary data representation library. In summary, this library module provides bit-stream operations and a new Binary class for which the compiler fully supports "deriving" clauses. Fuller details can be found in [1] and in this documentation.
  • The new common primitive FFI.
  • The IOExtras library, containing IORefs, IOArrays, trace, unsafePerformIO, etc.
  • Andy Gill's Observe.lhs library, used for HOOD debugging.
  • Local forall quantification on datatypes.
  • Extended module namespaces, of the form Long.Hierarchical.Module.Name.


[1] The Bits Between The Lambdas - Binary Data in a Lazy Functional Language, Malcolm Wallace and Colin Runciman, Proceedings of the International Symposium on Memory Management, Vancouver, Oct 1998. [FTP site]

The latest updates to these pages are available on the WWW from

York Functional Programming Group