
#8958: Allow role inference on datatype contexts -----------------------------------------------+--------------------------- Reporter: goldfire | Owner: Type: feature request | goldfire Priority: normal | Status: closed Component: Compiler | Milestone: 7.8.1 Resolution: fixed | Version: Operating System: Unknown/Multiple | 7.8.1-rc2 Type of failure: None/Unknown | Keywords: Test Case: roles/should_compile/T8958 | Architecture: Blocking: | Unknown/Multiple | Difficulty: Unknown | Blocked By: | Related Tickets: -----------------------------------------------+--------------------------- Changes (by goldfire): * status: new => closed * resolution: => fixed Comment: The code in the original post is indeed a grievous hack, but the change in GHC in order to support it is not. Indeed, when Mark first suggested this approach, I thought it was too unprincipled to incorporate. However, the only change needed within GHC to support the idea in the original post is that role inference must look at datatype contexts. This is sensible, all on its own. In fact, the user manual, as originally written for role inference, needs no change: it states that role inference propagates role information from every place a type is used, which naturally includes a datatype context. Now with this support in GHC, the grievous hack in my original post can be built in user-land. I have released it as a package `no-role-annots`. I don't really like it, but it seems to cause no harm and some might find it useful. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8958#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler