так, вы мой вопрос замылили
дано
interface MutableKeyValue<K, V>
fun <K, V> adapter(map: MutableMap<K, V?>): MutableKeyValue<K, V> = ...
fun <K, V> emptyKeyValue(): MutableKeyValue<K, V> = ...
почему
fun <K, V> of(key: K, value: V?): MutableKeyValue<K, V> =
value?.let { adapter(mutableMapOf(Pair(key, it))) } ?: emptyKeyValue()
не валидно, зато
fun <K, V> of(key: K, value: V?): MutableKeyValue<K, V> =
value.let { adapter(mutableMapOf(Pair(key, it))) }
вполне себе валидно?