我想用一个给定值的方法创建一个类型类 Size 来计算这个值中构造函数的数量。
class Size a where
size :: a -> Int
instance Size Int where
size a = 1
instance Size Bool where
size b = 1
instance Size (c,d) where
size (c,d) = 1 + Size c + Size d
example4 :: (Bool,(Int,Bool))
example4 = (True,(3,False))
main :: IO ()
main = do
print (size example4)
它应该给我值 5 但我收到错误消息Not in scope: data constructor `Size'
。
我想在实例中使用Size Int
或,但不知道如何。Size Bool
Size(c,d)
我的问题是我不知道如何解决它,因为我对 Haskell 还很陌生。