Type-Level Boundary Value Analysis — Picking Type Test Cases with BVA
How to move boundary value analysis from runtime tests to the type level, pairing a passing and a rejecting witness on each of the 7 extremes of the type lattice — and the axes types can never cover, like the time axis and side-effect counts