ich eine einfache Typdefinition haben:Wie beliebige Instanzen eines einfachen Typs für Quick Check erzeugen
data Cell = Cell {
x :: Int,
y :: Int
} deriving (Show)
ich nicht Cell
als Eingabe in einem Quick Check-Eigenschaft verwenden können, vermutlich, weil Quick Check nicht weiß, wie um Zellenwerte zu generieren.
Mein Verständnis ist, dass ich Cell eine Instanz der Arbitrary
Typklasse machen muss.
Wie mache ich das zum Beispiel, wenn ich möchte, dass Cell mit zufälligen positiven Werten für x und y erzeugt wird?
Dies ist, wo ich * wirklich * würde gerne anstelle Applicative Syntax verwenden. –
Denken Sie auch darüber nach, eine Implementierung für 'shrink' zu schreiben. Weniger wichtig vielleicht, aber spart für manche Fälle so viel Aufwand. –