@ExperimentalContracts interface Effect
Represents an effect of a function invocation, either directly observable, such as the function returning normally, or a side-effect, such as the function's lambda parameter being called in place.
The inheritors are used in ContractBuilder to describe the contract of a function.
An effect of some condition being true after observing another effect of a function.
interface ConditionalEffect : Effect