Possible regression with functional dependencies
The following program typechecks in GHC-7.0.4, but not in 6.12.3, 7.2.2 or 7.5.20111229:
{-# LANGUAGE FunctionalDependencies, MultiParamTypeClasses,
FlexibleInstances, UndecidableInstances, TypeFamilies #-}
class C a b | a -> b where
c :: a -> b
instance C b b where
c = undefined
instance C Bool b where
c = undefined
m :: Int
m = c True
- 5.20111229 says
Couldn't match type `Bool' with `Int'
When using functional dependencies to combine
C b b,
arising from the dependency `a -> b'
in the instance declaration at Test.hs:7:10
C Bool Int, arising from a use of `c' at Test.hs:14:5
In the expression: c True
In an equation for `m': m = c True
Was I just lucky that this worked in 7.0.4, or is it a true regression?
Trac metadata
Trac field | Value |
---|---|
Version | 7.2.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |