id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,testcase,blockedby,blocking,related,differential,wikipage
5736,Possible regression with functional dependencies,magnus,,"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
}}}
7.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?
",bug,closed,normal,,Compiler (Type checker),7.2.1,invalid,,,Unknown/Multiple,Unknown/Multiple,None/Unknown,,,,,,