I think the trick is to add another flag: OverlappingInstances

Cheers,
Axel

On 22.04.2010, at 10:34, Andy Stewart wrote:

> Hi Duncan,
>
> I'm try to convert gconf to Cabal package, below is package:
>
> <gconf.tar.gz>
> When i compile first, i got below error:
> ------------------------------> first error start  
> <------------------------------
> System/Gnome/GConf/GConfValue.chs:106:0:
>    Illegal instance declaration for `GConfPrimitiveValueClass String'
>        (All instance types must be of the form (T t1 ... tn)
>         where T is not a synonym.
>         Use -XTypeSynonymInstances if you want to disable this.)
>    In the instance declaration for `GConfPrimitiveValueClass String'
>
> System/Gnome/GConf/GConfValue.chs:138:0:
>    Illegal instance declaration for `GConfValueClass String'
>        (All instance types must be of the form (T t1 ... tn)
>         where T is not a synonym.
>         Use -XTypeSynonymInstances if you want to disable this.)
>    In the instance declaration for `GConfValueClass String'
> ------------------------------> first error end    
> <------------------------------
>
> So i add `{-# LANGUAGE CPP, TypeSynonymInstances #-}` in  
> GConfValue.chs.
> But i got another error:
>
> ------------------------------> error start  
> <------------------------------
> System/Gnome/GConf/GConfValue.chs:106:9:
>    Overlapping instances for GConfValueClass String
>      arising from the superclasses of an instance declaration
>                   at System/Gnome/GConf/GConfValue.chs:106:9-39
>    Matching instances:
>      instance GConfValueClass String
>        -- Defined at System/Gnome/GConf/GConfValue.chs:138:9-30
>      instance (GConfPrimitiveValueClass a) => GConfValueClass [a]
>        -- Defined at System/Gnome/GConf/GConfValue.chs:172:9-57
>    In the instance declaration for `GConfPrimitiveValueClass String'
>
> System/Gnome/GConf/GConfValue.chs:320:29:
>    Overlapping instances for GConfValueClass String
>      arising from a use of `marshalToGConfValue'
>                   at System/Gnome/GConf/GConfValue.chs:320:29-50
>    Matching instances:
>      instance GConfValueClass String
>        -- Defined at System/Gnome/GConf/GConfValue.chs:138:9-30
>      instance (GConfPrimitiveValueClass a) => GConfValueClass [a]
>        -- Defined at System/Gnome/GConf/GConfValue.chs:172:9-57
>    In the expression: marshalToGConfValue v'
>    In a case alternative:
>        (GConfValueString v') -> marshalToGConfValue v'
>    In the expression:
>        case v of {
>          (GConfValueString v') -> marshalToGConfValue v'
>          (GConfValueInt v') -> marshalToGConfValue v'
>          (GConfValueFloat v') -> marshalToGConfValue v'
>          (GConfValueBool v') -> marshalToGConfValue v'
>          (GConfValueSchema)
>            -> fail "GConf: setting schema types not supported"
>          (GConfValueList v') -> marshalGConfValueDynListToGConfValue  
> v'
>          (GConfValuePair v') -> marshalGConfValueDynPairToGConfValue  
> v' }
> ------------------------------> error end    
> <------------------------------
>
> Something looks wrong.
> And i don't know the detail of gconf binding, can you help me fix it?
>
> Thanks,
>
>  -- Andy
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Gtk2hs-devel mailing list
> Gtk2hs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel


------------------------------------------------------------------------------
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to