reexport IsList class from a trustworthy module
Motivation
GHC's Safe Haskell extension relies to a large extent on inferring safety of modules automatically. As a concrete example, data-default used to be inferred safe.
This is no longer the case, because dlist-0.7.1 added an IsList
instance for difference lists. The only way to do that currently is to import the relevant parts of GHC.Exts
, and that module is not safe.
Of course the resulting non-safety of the Data.DList
module can be fixed by adding a TrustWorthy
pragma to the module and trusting the dlist
package. But that is unsatisfactory, because there is nothing unsafe about providing an instance for the IsList
class. This issue is bound to pop up in other packages as well.
Proposed Solution
(this is one of many possibilities)
Add a GHC.Exts.Safe
module that is marked TrustWorthy
and reexports the IsList
class, and possibly other things from GHC.Exts
that are safe to use.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.3 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Core Libraries |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | core-libraries-committee@haskell.org |
Operating system | |
Architecture |