Week 5 Lecture 2
Property based testing means automatically generating data and testing whether the code aligns with the property or not
A good generator has few to none discarded values in the generator space (where the precondition fails on a generated value).
A QuickCheck Property is a combination of a precondition, a postcondition and a generator.
Testable is for types that can be translated into a property. For example, Bool.
Arbitrary is for types you can randomly draw elements from.