テンプレート haskell を使用する haskell プロジェクトで、ファントム型として型注釈を持つ式を生成しようとしています。
DataKinds
簡単な例は、次のKindSignatures
ような状況です。
{-# LANGUAGE DataKinds, KindSignatures #-}
data Foo = A | B
data GenMe (w :: Foo) = GenMe Int
[| $(generate some code) :: GenMe $(genType someCompileTimeData) |]
genType
そのような関数をどのように書くことができますか
genType :: Foo -> Q Type
リフティングは、コンパイル時の値を保持する変数を持ち上げるだけFoo
ですか? データの種類を作成するために、型データ コンストラクターからどのコンストラクターを使用すればよいかわかりません
。
何かご意見は?ありがとう!