Extracted Attempts object
If $elements do not change there is no need to re-run the Evaluation
Extracted pair of calls to increase() and ensureLimit()
Attempts object is now a private field
Renaming closure to $attemptFailed
$giveUpAfter is part of the Attempts object
Extracting $weGotASimplerFailingInput
We exclude the failed shrinking with continue, so we don't need to check again
Explaining why Attempts is there
Private fields update
Naming of shrinking callbacks

@gabrielelana these were J.B. "precise" names, now moved towards
"meaningful"