[project @ 1998-01-09 16:20:17 by simonm]
[ghc-hetmet.git] / ghc / docs / users_guide / 3-00-notes.lit
1 * Multi-parameter type classes are fully implemented.  There is more
2   sharing of dictionaries than in 2.10, so there's a chance that
3   efficiency will increase a little too.
4
5 * Error messages from the type checker should be noticeably improved
6
7 * Warnings for unused bindings (-fwarn-unused-names)
8         [I havn't updated the driver to deal with this; can you pls?]
9         In general, are warnings properly documented, since that's
10         something GHC does much better now?
11
12 * The "boing" example works, and many other minor bug fixes.
13
14 Internally there are the following changes
15
16 * Can only be built with 2.10 or later; committed to Haskell 1.4
17   module system and libraries.  Much cruft removed as a result.
18
19 * Dramatic clean-up of the PprStyle stuff.  No explicit "sty" parameters
20   now; it's all handled under the hood in Outputable.lhs
21
22 * The type Type has been substantially changed.  Usage types have
23   gone away entirely.  Type is parameterised wrt the "flexi" slot
24   in type variables, rather than wrt the type variable itself.
25   That means that many instance decls become much simpler, because
26   they are polymorphic in the "flexi" slot rather than needing
27   (say) Outputable on the type variable.
28
29 * The dictionary for each class is represented by a new
30   data type for that purpose, rather than by a tuple.  That in
31   turn means that Type can be a straightforward instance of Eq and Ord.
32   No need for eqSimpleTy, eqTy.
33
34 * The resulting compiler is just slightly (2%) shorter than the
35   old one in terms of source code size.
36