cdsmith / explainable-predicates

Predicates that can explain themselves

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QuickCheck integration

Bodigrim opened this issue · comments

It would be handy to have

toProperty :: Predicate t -> t -> Test.QuickCheck.Property
toProperty p t = counterexample (explain p t) (accept p t)

Then toProperty p becomes an instance of Test.QuickCheck.Testable with all nice implications of it.


I wonder whether a deeper integration might be desirable/possible, e. g.,

newtype Predicate t = Predicate (t -> Test.QuickCheck.Property)