Kotlin looks magical, but most of it is possible because of it's powerful type system. Understand how it works and how to take advantage of it while coding.
to Bottom https://www.youtube.com/watch?v=juFkdMv4B9s - Programmer dictionary: Class vs Type vs Object https://blog.kotlin-academy.com/programmer-dictionary-class-vs-type-vs- object-e6d1f74d1e2e - An Illustrated Guide to Covariance and Contravariance in Kotlin https://typealias.com/guides/illustrated-guide-covariance- contravariance/ - Getting Real with Kotlin's Reified Type Parameters https://typealias.com/guides/getting-real-with-reified-type-parameters/