将类型变量添加到新类型定义

时间:2019-03-12 19:17:37

标签: haskell typeclass newtype

在Haskell Programming的《第一原理》中的一个练习中,它说通过首先为其创建TooMany来声明类型(Num a, TooMany a) => (a, a)的{​​{1}}实例。我的问题是向newtype添加类型类约束。可能吗我在网上找不到其他示例。

Baz

1 个答案:

答案 0 :(得分:6)

您可能需要对Baz使用一个参数:

newtype Baz a = Baz (a, a) deriving (Eq, Show)
        -- ^^^ --

instance (Num a, TooMany a) => TooMany (Baz a) where
   ...

我不确定Num a是干什么的,但是我已经添加了,因为您提到了它。