Great article on the design of Hypothesis, and its advantages over a purely type-driven, QuickCheck style approach: https://hypothesis.works/articles/types-and-properties/