我正在尝试使用HUnit以 TDD 方式在 Real World Haskell 中进行练习。正如您可能猜到的那样,我还没有走多远,所以当谈到 Haskell 时,我绝对是初学者。给定以下代码,我如何解决 ghci 产生的以下错误:
模棱两可的类型变量
a' in the constraints:
Show a' 由于使用assertEqual' at List_Test.hs:6:27-58
Eq a' 源于在 List_Test.hs:6:27-58 处使用 `assertEqual' 可能的修复:添加修复这些类型变量的类型签名
List_Test.hs:
module List_Test
where
import List
import Test.HUnit
fromEmptyList = TestCase $ assertEqual "" [] (toList (Nil))
main = runTestTT fromEmptyList
列表.hs:
module List
where
data List a = Cons a (List a)
| Nil
deriving (Show)
toList Nil = []
toList (Cons a b) = (:) a (toList b)
我尝试向 List 声明和 toList 定义添加类型约束但没有成功。互联网搜索也没有提供任何信息。