[GHC] #10570: Too restrictive liberate coverage condition
GHC
ghc-devs at haskell.org
Thu Jun 25 10:30:45 UTC 2015
#10570: Too restrictive liberate coverage condition
-------------------------------------+-------------------------------------
Reporter: danilo2 | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple | Blocked By:
Test Case: | Related Tickets:
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Hello! Let's look at this small example:
{{{haskell
class ConsByIdx2 x a m cls | x -> m where
consByIdx2 :: x -> a -> m cls
instance ConsByIdx2 Int a Proxy cls where
consByIdx2 _ _ = Proxy
}}}
It fails to compile with the following error:
{{{haskell
Illegal instance declaration for ‘ConsByIdx2 Int a Proxy cls’
The liberal coverage condition fails in class ‘ConsByIdx2’
for functional dependency: ‘x -> m’
Reason: lhs type ‘Int’ does not determine rhs type ‘Proxy’
In the instance declaration for ‘ConsByIdx2 Int a Proxy cls’
}}}
But Int determines the Proxy in a nice way.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10570>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list