nhc98 compliance with Haskell 98
nhc98 is pretty close to being compliant with the Haskell
98 standard. Here is a complete list of the known deficiencies in
nhc98. (See also our list of size
limitations.)
- A very small number of the Standard Library functions remain
unimplemented. (Runtime warnings are provided for all
unimplemented functions.) The main functions currently missing
are those which manipulate TimeDiffs in the Time Library, and
a few of the more obscure IO library functions.
- The simple context restriction has not yet been removed.
- The declaration style funlhs -> ( funlhs ) {apat}
is not implemented.
- The monomorphism restriction is not implemented.
- Although the Unicode character set is used internally, there are
no facilities for reading or writing files with characters
represented by more than 8-bits. Large chars currently appear
only as numeric escape codes.
If you would like to implement any of these libraries or features, your
contribution would be most welcome.
In addition, the following Haskell'98 behaviours are normally turned off.
Use the -98 flag to turn them all on, or use the equivalent
separate flags.
- (n+k) patterns are normally switched off. Use -nkpat
to switch them on.
- Underscore is not normally treated as a lower-case letter. In
fact, it is usually transparent: the name _f is a varid,
but the name _F is a conid because it begins with an
uppercase letter (i.e. after the underscore). Use -underscore
to treat underscores as strictly lower-case.
The latest updates to these pages are available on the WWW from
http://www.haskell.org/nhc98/
25 April 2001
York Functional Programming Group
|