不允许键入类型同义词的类实例

时间:2017-04-11 11:20:19

标签: purescript

我尝试为名为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,但它不提供任何有用的信息。它是什么意思,如何解决?

1 个答案:

答案 0 :(得分:1)

使用newtypeToken提供记录中的不同类型。否则,您只需定义类型别名。

import Prelude

newtype Token = Token
  { identifier :: String
  , value :: String
  }

instance showToken :: Show Token where
  show (Token t) = "(Token " <> t.identifier <> ", " <> t.value <> ")"