PROPOSAL: re-export 'Typeable' type-class from Prelude
Edward Kmett
ekmett at gmail.com
Fri Sep 12 15:13:23 UTC 2014
After some deliberation on this I think I also come down -1 on this
proposal.
default-extensions: AutoDeriveTypeable
doesn't need it, so there is no technical reason to encumber everyone with
it. It'd cause a huge spate of warnings that'd force everyone to mangle
their import list in different ways with CPP, and without the methods for
working with it most users'd have to import more from Data.Typeable anyways.
-Edward
On Thu, Sep 11, 2014 at 6:20 AM, Herbert Valerio Riedel <hvr at gnu.org> wrote:
>
> 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
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140912/407582b7/attachment.html>
More information about the Libraries
mailing list