fmd
Things are especially sad when you declare val in an interface [...] Until you check implementation (which is not always possible) you can't be sure that value will be same each time you read it from the property.
val