How complete is Hat?

Key:
- = no support
+ = partial support
* = full support

"Partial" support of a language feature means that you will be able to trace programs using this feature, but that the traces may not be in convenient source-level terms. Partial support of a library or type-system feature means that some programs may trace OK, but others might not.

featureHat (2.04)

Language constructs
modules*
lambda abstractions*
pattern matches*
guards*
if-then-else*
case expr of*
list comprehensions+
monadic do+
infix operators*
numeric literals*
numeric sequences+
n+k patterns*
Basic types
Bool*
Char*
List*
Tuples*
Int*
Integer*
Float*
Double*
Rational*
User types
data types*
type synonyms*
newtypes*
named fields*
type classes*
derived instances*
strict types*
featureHat (2.04)

Input/output
single I/O streams*
file handling+
Libraries
Haskell'98 Prelude*
Haskell'98 Libraries*
base hierarchical libraries+
other hierarchical libraries-
Platform Portability
machine and O/S*
nhc98*
ghc*
hugs-
hbc-
helium-
Non-Haskell'98 Extensions
primitive FFI+
hierarchical library namespace*
unsafePerformIO etc*
multi-parameter TCs*
functional dependencies*
existential types+
implicit parameters-
imprecise exceptions+
concurrency-
parallelism-