Companion object to WheneverAsserting that provides two implicit providers, a higher priority one for passed functions that have result
type Assertion, which also yields result type Assertion, and one for any other type, which yields result type Unit.
Provides support of WheneverAsserting for Unit.
Provides support of WheneverAsserting for Unit. Return Unit when the check succeeds,
but throw DiscardedEvaluationException
when check fails.