Network.HTTP から ResponseCode を受け取る関数があります。QuickCheck でテストするために、ResponseCode の Arbitrary のインスタンスを書きたいと思いました。(ご存じない場合は、ResponseCode は、そのライブラリ内の int のトリプルにすぎません: type ResponseCode = (Int, Int, Int))。
だから私はこのようなものを書きました:
instance Arbitrary ResponseCode where
arbitrary = triple ( elements [1..6] )
where triple f = (f, f, f)
まず第一に、GHC は、私が型を使用している方法が標準的な Haskell ではないので、いくつかのコンパイラ フラグを使用する必要があると文句を言っています (これは、この単純な問題に対して、フラグ)。
次に、任意の関数の型が間違っています。これは明らかです。しかし、その後、1 から 6 の範囲のランダムな Int を持つトリプルを返す関数の書き方が本当にわかりませんでした。
誰かがここで私を助けてくれれば幸いです。
ありがとうございました。