类型 class 类型同义词的实例是不允许的
Type class instances for type synonyms are disallowed
我尝试为名为 Token
的自定义类型实现 show
函数。我试过以下代码:
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,但没有提供任何有用的信息。这是什么意思,如何解决?
使用 newtype
为 Token
提供与记录不同的类型。否则,您只是在定义一个类型别名。
import Prelude
newtype Token = Token
{ identifier :: String
, value :: String
}
instance showToken :: Show Token where
show (Token t) = "(Token " <> t.identifier <> ", " <> t.value <> ")"
我尝试为名为 Token
的自定义类型实现 show
函数。我试过以下代码:
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,但没有提供任何有用的信息。这是什么意思,如何解决?
使用 newtype
为 Token
提供与记录不同的类型。否则,您只是在定义一个类型别名。
import Prelude
newtype Token = Token
{ identifier :: String
, value :: String
}
instance showToken :: Show Token where
show (Token t) = "(Token " <> t.identifier <> ", " <> t.value <> ")"