我正在试验基于HList的类型化异构列表。
我已经定义了以下内容:
import Data.HList
data ATag
data BTag
type TagList = ATag :*: BTag :*: HNil
bIndex :: Int
bIndex = hNat2Integral (hFind (undefined :: BTag) (undefined :: TagList))
我bIndex
期望值为 1。相反,我收到以下错误:
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
有没有办法做到这一点?