In this chapter, we will cover the following recipes:
- Kotlin and Java interoperability issues
- Kotlin and JavaScript interoperability issues
- Renaming of generated classes
- Decompiling Kotlin code to JVM bytecode
- Adding custom names for imports
- Wrapping complex type declarations with type aliases
- Expressive try…catch declarations
- Safe type-casting