Kotlin variance modifiers and Covariant Object Nothing pattern.
summary
Explains how Kotlin uses variance to make types safe and practical: concrete examples include List is out (covariant) while MutableList is invariant, function types with parameters as in and results as out, and a practical pattern—empty collections and sentinel values implemented as a single List<Nothing>/object—so one instance is reused. Shows an Either example using out + Nothing, demonstrates Java array ArrayStoreException as a caution, and covers @UnsafeVariance and private exceptions.
AI-written summary · about
chapters (12)
- 0:00Introduction to variance
- 1:54Generic types basics
- 3:18Variance modifiers explained
- 6:08Covariance in practice
- 9:05Contravariance example
- 11:16Function type variance
- 15:19Covariant Nothing Object
- 18:33Empty list optimization
- 20:22Task update pattern
- 23:38Arrow library example
- 27:22Variance limitations
- 36:19Exceptions and summary








