[GHC] #8141: Liberalising IncoherentInstances

GHC ghc-devs at haskell.org
Fri Aug 30 10:46:57 CEST 2013


#8141: Liberalising IncoherentInstances
-------------------------------------+------------------------------------
        Reporter:  nomeata           |            Owner:
            Type:  feature request   |           Status:  new
        Priority:  normal            |        Milestone:
       Component:  Compiler          |          Version:  7.6.3
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------
Changes (by simonpj):

 * status:  closed => new
 * resolution:  fixed =>


Comment:

 I can't quite see from the diffs, but I would like the user manual to
 pretty much give the specification in my email:
 {{{
 More precisely, when trying to find an instance matching a target
 constraint (C tys),

 a) Find all instances matching (C tys); these are the candidates

 b) Eliminate any candidate X for which another candidate Y is
   strictly more specific (ie Y is a substitution instance of X),
   if either X or Y was complied with -XOverlappingInstances

 c) Check that any non-candidate instances that *unify* with (C tys)
    were compiled with -XIncoherentInstances

 d) If only one candidate remains, pick it.
     Otherwise if all remaining candidates were compiled with
     -XInccoherentInstances, pick an arbitrary candidate
 }}}
 I don't think it yet does.  I'll take a look.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8141#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler




More information about the ghc-tickets mailing list