2

テンプレート 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ですか? データの種類を作成するために、型データ コンストラクターからどのコンストラクターを使用すればよいかわかりません 。

何かご意見は?ありがとう!

4

1 に答える 1