[project @ 2003-04-17 15:23:37 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)
commite1399bdcde01f55824973b556f60eecbe4dc2250
tree41278ff95700cf8dec60ba4470361ee19d0e4b7b
parenta7fdfabc5f9d97b2cbcd6fe80b70f0b2d1d0db95
[project @ 2003-04-17 15:23:37 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.
Data/Array/IO/Internals.hs
Data/Dynamic.hs
Data/HashTable.hs
Data/IORef.hs
GHC/IOBase.lhs