~/talk

falsify: Internal Shrinking Reimagined for Haskell

Talkat Haskell 2023 · 2023-09-08..09-09· [testing, functional-programming]
links:none on file
slides:none on file

falsify implements internal shrinking for Haskell by parsing an infinite splitable sample tree of RNG bits into values rather than by pairing generators with separate shrinkers. generators return a value plus the shrinkable sample locations, so functions and infinite structures shrink to tiny counterexamples (example: a generated [Word8] -> Bool collapses to “true for 1618, false elsewhere”). it uses Prim combinators, selective functors to avoid irrelevant shrinking, and a one-bit shrunk state to enable manual shrink embedding; library offers combinators and shrink tests but no large case studies yet.

AI-written summary · about

  1. 0:00Introduction to shrinking
  2. 3:27Limitations of existing models
  3. 7:52The Falsify approach
  4. 12:58Writing robust generators
  5. 17:24Selective choices and state
  6. 22:15Advanced combinators
  7. 25:24Philosophy and conclusion
  8. 27:01Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.