#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