例如Haskell语法

Chi*_*ffa 0 haskell instances

我正在尝试使一对实例Printable,但我无法弄清楚正确的语法.我的Printable是这样的:

class Printable a where
    toString :: a -> [Char]

instance Printable Bool where
    toString True = "true"
    toString False = "false"
instance Printable () where
    toString () = "unit type"
Run Code Online (Sandbox Code Playgroud)

和我的对实例是这样的:

instance  Printable ( a, b ) where
    toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"
Run Code Online (Sandbox Code Playgroud)

在编译时,给了我一个No instance for (Printable a) arising from a use of ‘toString’.我究竟做错了什么?

Lee*_*Lee 5

您需要ab成为Printable:

instance (Printable a, Printable b) => Printable ( a, b ) where
    toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"
Run Code Online (Sandbox Code Playgroud)