いくつかのタイプがあります
data Foo = Foo
data Bar = Bar
data Baz = Baz
それらをマップのキーとして使用したい。これは可能ですか?
以下の追加のコンテキスト:
VM を構築するアプリケーションがあります。作業をフェーズに分けました。現在、私はこのタイプを持っています
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