Understanding the `out` Keyword in Kotlin Generics | CodeTrail