Smart-cast problem

Hmm, I would expect subclasses of MutableList to be also mutable by contract as Kotlin makes the distinction between mutable and immutable collections. I am a bit surprised that java.util.List is equivalent to MutableList as @jstuyts says. I guess that this LSP violation comes from java interop, right?

So, is there a “safe” way to check if a list is actually mutable?