#714: Inconsistency between handling functional dependencies in class and
signature constraints
-------------------------------------+--------------------------------------
 Reporter:  [EMAIL PROTECTED]  |          Owner:  simonpj    
     Type:  bug                      |         Status:  new        
 Priority:  low                      |      Milestone:  6.10 branch
Component:  Compiler (Type checker)  |        Version:  6.5        
 Severity:  normal                   |     Resolution:             
 Keywords:                           |     Difficulty:  Unknown    
 Testcase:                           |   Architecture:  Unknown    
       Os:  Unknown                  |  
-------------------------------------+--------------------------------------
Comment (by claus):

 Replying to [comment:10 chak]:
 >What is the problem with the following answer?
 {{{
 *Main> :t tf
 tf :: a
 }}}
 > The constraint `TF a ~ b` can always be satisfied by `b := TF a` and
 does not put any restriction on the application of `tf`.

 There should be the restriction that there '''exists''' at least one type
 family instance (type function application is strict, not lazy, right?-)
 at the point of use. There isn't one at all here.

 > The same holds for the super class constraint `TF a ~ b`.  It is
 meaningless; hence, I cannot see why we should support it.

 It brings a short name `b` into scope, bound to the result of the type
 function application.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/714#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to