[GHC] #9918: GHC chooses an instance between two overlapping, but cannot resolve a clause within the similar closed type family
GHC
ghc-devs at haskell.org
Mon Dec 22 18:49:21 UTC 2014
#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: | Architecture: Unknown/Multiple
Unknown/Multiple | Difficulty: Unknown
Type of failure: | Blocked By:
None/Unknown | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Comment (by qnikst):
Thanks for replies.
> Your program depends in a very delicate way on the treatment of infinite
types. I wonder if it needs to?
I need to think more about this, at this moment if was the most obvious
way how to write required instances, but possibly there are more ways
around.
> Are you sure that OverlappingInstances works here, even to select the
MonadRaise m m instance?
I've just checked the minimal example and I need to say that it doesn't
choose `MonadRaise m m`, without explicit type signature:
{{{
test_2 = do
hout <- newSHandle
shPutStrLn hout
}}}
however adding `test_2 :: IORT s IO ()` helps, in case of type families
adding explicit type signature didn't help me in my experiments.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9918#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list