Interesting extension of this: the Kotlin compiler currently requires all Kotlin files to be sent to the compiler at once, unlike clang, which can compile an individual file. If you wanted to compile Kotlin one file at a time for some definition of ‘fun’, you could technically compile the least dependent Kotlin file, then use cinterop to convert the generated header to Kotlin serialized IR, which you add as a dependency to another Kotlin file, which you compile, and continue this until the whole project is compiled. Not suggesting this is a good idea, just interesting.