我尝试为名为show
的自定义类型实现Token
函数。我尝试了以下代码:
type Token =
{ identifier :: String
, value :: String
}
instance showToken :: Show Token where
show t = "(Token " <> t.identifier <> ", " <> t.value <> ")"
但我收到以下错误:
Type class instances for type synonyms are disallowed.
错误提供link,但它不提供任何有用的信息。它是什么意思,如何解决?
答案 0 :(得分:1)
使用newtype
为Token
提供记录中的不同类型。否则,您只需定义类型别名。
import Prelude
newtype Token = Token
{ identifier :: String
, value :: String
}
instance showToken :: Show Token where
show (Token t) = "(Token " <> t.identifier <> ", " <> t.value <> ")"