Pattern matching in Kotlin

Oh goodness. What have I done.

My aim was to describe a scheme that might be of value to Kotlin developers.
The approach evolved with my own class hierarchies.
I do not even know if it is already in use in other languages.

Next time I will watch my language!