reexport IsList class from a trustworthy module
|Reported by:||int-e||Owned by:|
|Keywords:||SafeHaskell||Cc:||core-libraries-committee@…, eir@…, oerjan, dterei, ekmett|
|Type of failure:||None/Unknown||Test Case:|
|Related Tickets:||Differential Rev(s):|
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.
(this is one of many possibilities)
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.