以下haskell类型类实例有什么问题?

时间:2011-05-03 08:39:43

标签: haskell typeclass

data II = I Int Int deriving (Show)
instance II Show where
  show I a b = show (a+b)

showt.hs:3:2:show' is not a (visible) method of class II'

1 个答案:

答案 0 :(得分:8)

类名应该出现在实例声明中的类型之前。您还需要删除deriving子句,因为您提供自己的实例而不是使用自动派生的实例。您还需要在show的单个参数周围添加括号,否则它看起来像解析器的3个参数。

data II = I Int Int
instance Show II where
    show (I a b) = show (a+b)