我是Haskell中的一名完全新手,请耐心等待。Haskell实例签名
比方说,我有这个类
class Indexable i where
at :: i a p -> p -> a
现在让我们说,我想implent该类型类的数据类型为:
data Test a p = Test [a]
我想的是:
instance Indexable Test where
at (Test l) p = l `genericIndex` p
但它没有编译,因为p需要是一个积分,但据我所知,它是不可能的,添加为实例键入签名。我试图使用InstanceSigs,但失败了。
任何想法?
也许家庭/约束类的东西有点沉重 - 你为什么不开始使用多参数类型类型并添加索引类型?那么你可以约束你的实例的* index *类型 – Carsten