Kotlin stands as more of a pragmatic middle ground - it sticks closer to Java, but makes key decisions that afford a more functional style, better guarantees, and a slightly less wonky type system without sacrificing interoperability. It's definitely not striving for a holistic functional mindset, though one can certainly be pursued; and it's definitely not aiming to dive deep into the type mechanisms that Scala has been built around.