HListベースの型指定された異種リストを試しています。
以下を定義しました。
import Data.HList
data ATag
data BTag
type TagList = ATag :*: BTag :*: HNil
bIndex :: Int
bIndex = hNat2Integral (hFind (undefined :: BTag) (undefined :: TagList))
値が 1 であることを期待bIndex
していましたが、代わりに次のエラーが表示されます。
No instances for (HEq BTag ATag b,
HFind' b BTag (HCons BTag HNil) n0)
arising from a use of `hFind'
GHC (7.4.1) はインスタンスを自動的に推論できないようです
HEq BTag ATag HFalse
それを実現する方法はありますか?