我有一些类型
data Foo = Foo
data Bar = Bar
data Baz = Baz
我想将它们用作地图的键。这可能吗?如果可以,怎么做?
下面的附加上下文:
我有一个构建虚拟机的应用程序。我已将工作分为几个阶段。目前我有这种类型
data CurrentPhase = PHASEONE
| PHASETWO
| PHASETHREE (deriving Eq,Ord)
到目前为止一切顺利,没有像我上面提到的那样的问题。但是,我创建了一个类型类来描述特定于阶段的操作
class PhaseOps phase where
preValidate :: JobID -> phase -> Handler (Status)
doPreProc :: JobID -> phase -> Handler (Status)
updateConfig :: JobID -> phase -> Handler ()
postValidate :: JobID -> phase -> Handler (Status)
为了使其工作,我必须创建一组新的单例数据类型以用于PhaseOps
实例。
data PhaseOne = PhaseOne
.. 等等
现在我有了这些单例类型,并且CurrentPhase
. 我想摆脱CurrentPhase
(我将它用于CurrentPhase
作为键的 Map ),并使用我的单例数据类型。