Gleb Alexeyev:
Sjoerd Visscher wrote:
When I try this bit of code:
> class C1 a where
> type F a :: *
> x :: F a
> y :: F a
> x = y
I get this error:
Couldn't match expected type `F a1' against inferred type `F a'
In the expression: y
In the definition of `x': x = y
I can't figure out what is going on or how I should fix this.
The discussion [1] seems to be related.
[1] http://hackage.haskell.org/trac/ghc-test/ticket/2855
Exactly. See also the related ticket
http://hackage.haskell.org/trac/ghc-test/ticket/1897
In short, the signature "F a" is ambiguous (as `a' only occurs as a
parameter of a synonym family in the signature). Functions with an
ambiguous signature are generally unusable (even if the compiler
accepts the definition initially).
Manuel
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe