On Tue, Sep 23, 2008 at 6:07 PM, Wolfgang Jeltsch
<[EMAIL PROTECTED]> wrote:
> Hello,
>
> please consider the following code:
>
>> {-# LANGUAGE GADTs, MultiParamTypeClasses, FunctionalDependencies #-}
>>
>> data GADT a where
>>
>>     GADT :: GADT ()
>>
>> class Class a b | a -> b
>>
>> instance Class () ()
>>
>> fun :: (Class a b) => GADT a -> b
>> fun GADT = ()
>
> I'd expect this to work but unfortunately, using GHC 6.8.2, it fails with the
> following message:

bear in mind that the only instance you defined is

instance Class () ()

which doesn't involve your GADT at all.

Maybe you meant something like:

instance Class (GADT a) ()

Moreover, your fun cannot typecheck, regardless of using MPTC or
GADTs. The unit constructor, (), has type () and not b.
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to