[Haskell-cafe] Re: Type family problem

Manuel M T Chakravarty chak at cse.unsw.edu.au
Wed Jan 21 11:30:50 EST 2009


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



More information about the Haskell-Cafe mailing list