fun valuesNotNull(map: MutableMap<Int, String>) {
    map.replace(1, "x")
        // SUCCESS
        // ORIGINAL:    fun replace(K, V): V? defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replace(Int, String): String? defined in kotlin.collections.MutableMap
    map.replace(1, "x", "y")
        // SUCCESS
        // ORIGINAL:    fun replace(K, V, V): Boolean defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replace(Int, String, String): Boolean defined in kotlin.collections.MutableMap

    map.replaceAll { k, v -> "$k to ${v.length}" }
        // SUCCESS
        // ORIGINAL:    fun replaceAll(BiFunction<in K, in V, out V>): Unit defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replaceAll(BiFunction<in Int, in String, out String>): Unit defined in kotlin.collections.MutableMap
}

fun valuesNullable(map: MutableMap<Int, String?>) {
    map.replace(1, null)
        // SUCCESS
        // ORIGINAL:    fun replace(K, V): V? defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replace(Int, String?): String? defined in kotlin.collections.MutableMap
    map.replace(1, null, "x")
        // SUCCESS
        // ORIGINAL:    fun replace(K, V, V): Boolean defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replace(Int, String?, String?): Boolean defined in kotlin.collections.MutableMap

    map.replaceAll { k, v -> "$k to $v" }
        // SUCCESS
        // ORIGINAL:    fun replaceAll(BiFunction<in K, in V, out V>): Unit defined in kotlin.collections.MutableMap
        // SUBSTITUTED: fun replaceAll(BiFunction<in Int, in String?, out String?>): Unit defined in kotlin.collections.MutableMap
}

