[GHC] #9724: reexport IsList class from a trustworthy module
GHC
ghc-devs at haskell.org
Sat Oct 25 18:42:53 UTC 2014
#9724: reexport IsList class from a trustworthy module
-------------------------------------+-------------------------------------
Reporter: int-e | Owner: ekmett
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Core Libraries | Version: 7.8.3
Keywords: | Operating System:
Architecture: Unknown/Multiple | Unknown/Multiple
Difficulty: Unknown | Type of failure:
Blocked By: | None/Unknown
Related Tickets: | Test Case:
| Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
==== Motivation
GHC's Safe Haskell extension relies to a large extent on inferring safety
of modules automatically. As a concrete example,
[[http://hackage.haskell.org/package/data-default|data-default]] used to
be inferred safe.
This is no longer the case, because
[[http://hackage.haskell.org/package/dlist-0.7.1|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.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9724>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list