``` fun Any?.foo(other: Any?) { contract { ...
# announcements
l
Copy code
fun Any?.foo(other: Any?) {
    contract {
        other == null implies (this != null)
    }
}
d
In what situation does this make sense? This moves the responsibility for the contract to the caller.
The function implementing a contract is responsible for meeting it.
The function can say something about the parameters in the way it returns, not in the values that are passed to it.