2
遇到錯誤大致是這樣的:斷言型家庭FORALL平等
Could not deduce T1 p (T2 p a b) ~ (a, b)
從函數聲明,其中T1
和T2
是類型家庭。
但是,所有的p
,a
和b
均相同。
我可以通過添加修復:
T1 p (T2 p a b) ~ (a, b)
但後來我得到類似如下:
Could not deduce T1 p (T2 p a c) ~ (a, c)
最後,我可以補充足夠的等式約束的功能,殺死錯誤。
另一種方法是不定義函數簽名,編譯器派生出可怕的東西,但它工作正常。
但是,有沒有辦法,我可以這樣說
forall p a b. T1 p (T2 p a b) ~ (a, b)
這樣我就可以覆蓋這些都一氣呵成?
順便說一下'T1'和T2'是什麼? – Alec
請添加您正在嘗試執行的完整示例。這個問題是不可回答的。 – dfeuer
「以下的平等是真實的」 - 你怎麼知道這是真的?是否有關向GHC證明的問題,以便您可以省略類型簽名中的類型等式約束? – chi