Type Classes in Kotlin?

FYI, I just posted a few thoughts on this topic: