BEFORE MODIFICATION:
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] arg: R|kotlin/Any?|, [ResolvedTo(BODY_RESOLVE)] num: R|kotlin/Int?|, [ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
    [R|Contract description]
     <
        Returns(WILDCARD) -> arg is kotlin/String
        Returns(WILDCARD) -> num != null
        CallsInPlace(block, EXACTLY_ONCE)
    >
 {
    <Unresolved name: require>#((R|<local>/arg| is R|kotlin/String|))
    <Unresolved name: require>#(!=(R|<local>/num|, Null(null)))
    R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()
}

AFTER MODIFICATION:
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun foo([ResolvedTo(BODY_RESOLVE)] arg: R|kotlin/Any?|, [ResolvedTo(BODY_RESOLVE)] num: R|kotlin/Int?|, [ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
    [R|Contract description]
     <
        Returns(WILDCARD) -> arg is kotlin/String
        Returns(WILDCARD) -> num != null
        CallsInPlace(block, EXACTLY_ONCE)
    >
 { LAZY_BLOCK }
