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 small number of the new 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.cs.york.ac.uk/fp/nhc98/
2001.04.25
York Functional Programming Group
|