我是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