[project @ 2003-04-17 15:23:32 by simonpj]
authorsimonpj <unknown>
Thu, 17 Apr 2003 15:23:37 +0000 (15:23 +0000)
committersimonpj <unknown>
Thu, 17 Apr 2003 15:23:37 +0000 (15:23 +0000)
commit6e6f54693cb89f77701583a55dd39cd4d767c61b
tree272df8facfbc422d0c623a4da3e67636eb0f8695
parentf238dae7ded41a7af20b6c0bc70e90e1ed8dffd9
[project @ 2003-04-17 15:23:32 by simonpj]
----------------------------------
Implement Typeable properly
----------------------------------

1.  Add 'deriving' for Typeable class. So you can say

data T a b = .... deriving( Typeable )

    At the moment you only get this if you ask for it. If you say
    nothing you get nothing.

2.  Implement Typeable better, with proper O(1) comparison of
    type representations

3.  Add the 'cast' operation described in 'Scrap your boilerplate'
    and use it.

4.  Consequence: need to move the definition of IOArray from
    Data.Array.IO.Internals to GHC.IOBase, where it joins IORef.
    This is necssary so that HashTable can be low down in the compilation
    hierarchy, and hence so can Dynamic.

WARNING: I'm not certain the imports in HashTable and Dynamic
 will all be right for Hugs and NHC. I hope you can
    fix them up.
ghc/compiler/prelude/PrelNames.lhs
ghc/compiler/typecheck/TcDeriv.lhs
ghc/compiler/typecheck/TcGenDeriv.lhs