Haskell's Show 的 Elm 等价物是什么?

What is the Elm equivalent of Haskell's Show?

我在 Elm 中实现了自定义类型:

type Bin = BEmpty | One Bin | Zero Bin

我希望它在 String 上下文中使用时可以显示,类似于:

main = 
  Html.p (text bin)

例如,如果定义了以下内容:

bin : Bin
bin = One (One (Zero BEmpty))

如果我尝试按如下方式定义 Show 的实例:

instance Show Bin
  show bin = show (binToDec bin)

我收到以下错误:

-- NAMING ERROR --------------------------------------------------- src/Main.elm

I cannot find a `Bin` variant:

19| instance Show Bin 
                  ^^^
These names seem close though:

    EQ
    Err
    GT
    L

在 Elm 中是否有等同于 Haskell 的 instance Show Bin where 声明?

不,Elm 没有这个功能。您需要实现自己的 toString 功能:

binToString : Bin -> String
binToString bin =
    binToDec bin
    |> String.fromInt