PROPOSAL: re-export 'Typeable' type-class from Prelude

Herbert Valerio Riedel hvr at gnu.org
Thu Sep 11 10:20:11 UTC 2014


TL;DR
=====

Re-export 'Data.Typeable.Typeable' from 'Prelude'

Motivation
==========

Since GHC 7.8 the ubiquitous 'Typeable' instances can only be
auto-derived via `... deriving Typeable`, moreover there's a new
extension `-XAutoDeriveTypeable` which implicitly auto-derives
'Typeable' for all defined types in modules for which that extension is
enabled.

However, even if you enable `-XAutoDeriveTypeable` you still need to
explicitly bring the 'Typeable' class into scope, with e.g.

    import Data.Typeable (Typeable)

otherwise GHC complains with

    Not in scope: type constructor or class ‘Typeable’

Since at this point it's become current practice to have 'Typeable'
instances for most types, it would be beneficial to save an 'import
Data.Typeable (Typeable)' line for the sole purpose of deriving such
instances.

By having 'Prelude' re-export 'Typeable' from GHC 7.10 on (should this
proposal be implemented) it would suffice to have a

  default-extensions: -XAutoDeriveTypeable`

in the Cabal file and have 'Typeable' instance auto-derived for all
types defined in a package w/o any source changes (unless there's a
name-clash with 'Typeable')

Discussion period
=================

The usual 2 weeks


More information about the Libraries mailing list