Tell me more ×  I have a type  data Phase = PhaseOne
| PhaseTwo            | PhaseThree deriving Enum  and five
operations to do on each Phase    • read   • write   • validate
• evalStatus   • update  I began trying to create a type class.
The problem is, they are all the same type. I'd like to be able
to do something like  instance MyClass PhaseThree where   read a
= ...  Also, I need to overload the return type.  I know type
classes aren't what I want. But I'm not sure how to do what I
want. I thought of a GADT but that's not quite right as I need
to be able to have each instance in a separate file.  I'd like
some advice on which mechanisms I need to investigate? Have I
given enough information?  share|improve this question If you
define separate functions for readPhaseOne, readPhaseTwo,
writePhaseOne, writePhaseTwo, etc., what would their types be?
–  Heatsink Jul 2 '12 at 22:52 it would help if you had slightly
more information. What is it exactly that you are trying to
achieve? Why won't pla