id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
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,Unknown,,,,
