我有一个从 Network.HTTP 获取 ResponseCode 的函数。为了使用 QuickCheck 对其进行测试,我想为 ResponseCode 编写一个 Arbitrary 实例。(如果您不知道,ResponseCode 只是该库中的三个整数:type ResponseCode = (Int, Int, Int))。
所以我写了这样的东西:
instance Arbitrary ResponseCode where
arbitrary = triple ( elements [1..6] )
where triple f = (f, f, f)
首先,GHC 抱怨我使用类型的方式不是标准的 haskell,所以我必须使用一些编译器标志(这不是我真正想要的,因为我觉得必须有一个简单的解决方案来解决这个简单的问题,而无需标志)。
其次,我的任意函数类型错误,这很明显。但是后来我真的不知道如何编写一个函数来返回一个三元组,其中随机整数范围为 1-6。
如果有人可以在这里帮助我,我将不胜感激。
谢谢你。