我有一個非常簡單的代碼如下:覆蓋率條件失敗
{-# LANGUAGE
MultiParamTypeClasses,
FunctionalDependencies,
FlexibleInstances,
FlexibleContexts
#-}
class Graph g n e | g -> n e where
nodes :: g -> [n]
edge :: g -> (n,n) -> Maybe e
instance Graph g Int e where
nodes g = []
edge g (n1,n2) = Nothing
我得到了相關的覆蓋條件的誤差爲函數依賴的一個失敗。我需要添加-XUndecidableInstances來允許這個嗎?或者我如何解決這個問題?謝謝
你的函數依賴性表明,你選擇'g'類型的選擇分別決定你的節點和元素類型'n'和'e'。那麼,說所有圖形類型'g'(不知道關於'g')是否確定節點類型是'Int'? – sabauma
@sabauma,謝謝!我從來不知道覆蓋情況如何,但這個小例子顯示了我! :-) – luqui
@luqui嘿,我從來沒有聽說過「覆蓋條件」之前。我只是推理代碼。 – sabauma