-
Notifications
You must be signed in to change notification settings - Fork 37
Home
David Fox edited this page Dec 8, 2016
·
2 revisions
Welcome to the safecopy wiki!
If you have a parameterized type such as
data UserProfile capability
= UserProfile { _groups :: Set (GroupID, capability) ... }
when you try to
$(deriveSafeCopy 1 'base ''UserProfile)
you will find that ghc complains that there is no Ord
instance for capability
. This is because
the generated code tries to get and put values of type Set (GroupID, capability)
, but in the
expression it builds it requires the Ord capability
instance implied by Set
, which is not
available at that particular point. In my case I solved this by changing Set(GroupID, capability)
to Map GroupID capability
, because Map
doesn't need the values to be Ord
. A satisfying solution
in this case, hopefully your solution will be as simple.