[Haskell-cafe] problems with derive/TH

Stuart Cook scook0 at gmail.com
Fri May 23 11:54:34 EDT 2008


On Sat, May 24, 2008 at 1:11 AM, Thomas Hartman <tphyahoo at gmail.com> wrote:
> World.hs:42:0:
>   No instances for (Eq (a (M.Map String Player)),
>                     Eq (a (M.Map ItemId Item)),
>                     Eq (a (M.Map PlayerId Player)),
>                     Eq (a (M.Map RoomId Room)),
>                     Eq (a RoomId))
>     arising from the 'deriving' clause of a data type declaration
>                  at World.hs:(42,0)-(50,14)
>   Possible fix:
>     add an instance declaration for
>     (Eq (a (M.Map String Player)),
>      Eq (a (M.Map ItemId Item)),
>      Eq (a (M.Map PlayerId Player)),
>      Eq (a (M.Map RoomId Room)),
>      Eq (a RoomId))
>   When deriving the instance for (Eq (World a))

This error looks suspicious: notice that "a" in a type-constructor
position. My guess is that you're accidentally using World's type
parameter in a strange way.

Perhaps you should double-check that your types and constructor
definitions are using parentheses appropriately.


Stuart


More information about the Haskell-Cafe mailing list