
#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