# How complete is Hat?

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

Haskell'98 vs. Hat | Actual (2.00) | Planned
--- | --- | ---

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 | * | *

Haskell'98 vs. Hat | Actual (2.00) | Planned
--- | --- | ---

Input/output
single I/O streams | * | *
file handling | + | *
Libraries
Prelude | * | *
Ratio | * | *
Complex | * | *
Numeric | * | *
Ix | * | *
Array | * | *
List | * | *
Maybe | * | *
Char | * | *
Monad | * | *
IO | * | *
Directory | * | *
System | * | *
Time | * | *
Locale | * | *
CPUTime | * | *
Random | * | *
Platform Portability
machine and O/S | * | *
nhc98 | * | *
ghc | * | *
Non-Haskell'98 Extensions
primitive FFI | * | *
IOExtras library | - | *
multi-parameter TCs | - | *
existentials | - | -
concurrency | - | -
parallelism | - | -