#4492: Type families regression
---------------------------------+------------------------------------------
    Reporter:  rl                |       Owner:                           
        Type:  bug               |      Status:  new                      
    Priority:  normal            |   Component:  Compiler (Type checker)  
     Version:  7.1               |    Keywords:                           
    Testcase:                    |   Blockedby:                           
          Os:  Unknown/Multiple  |    Blocking:                           
Architecture:  Unknown/Multiple  |     Failure:  GHC rejects valid program
---------------------------------+------------------------------------------
 Here is a small program:

 {{{
 type family F a b
 type instance F (Maybe a) b = b -> F a b

 class C a where
   go :: (forall a. Maybe a -> b -> a) -> a -> F a b

 instance C a => C (Maybe a) where
   go f a b = go f (f a b)
 }}}

 The current head complains:

 {{{
     Could not deduce (F a b ~ F a b) from the context (C a)
     NB: `F' is a type function, and may not be injective
     Expected type: b -> F a b
       Actual type: F (Maybe a) b
 }}}

 6.12.3 accepts it.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4492>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to