
#9918: GHC chooses an instance between two overlapping, but cannot resolve a clause within the similar closed type family -------------------------------------+------------------------------------- Reporter: qnikst | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by qnikst): Replying to [comment:10 simonpj]: Taking into account that this undecidability is used for purpose in number of libraries, (regions and hlists first comes into my mind, but there should be others) it worth to have a way to have this undecidability even in case if strenghtened "surely- apart" check will be used by default. And definitely this change will introduce some level of breakage in libraries. If "sulery-apart" check will be strengthened then `{-# UNDECIDABLE Foo #-}` solution looks very nice. And of cause per-type-family it looks much better (in the same sense as `XOverlappingInstances` that were deprecated in favor of `{-# OVERLAPPABLE #-}` pragma). And as far as I understand then in order to reach consistency it should be possible to use this pragma with closed type families and as a result first program will be accepted? In this case solution will be very good for me, as it will have a consistency by default and allow to switch from OverlappingInstances to closed type families in our case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9918#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler