Higher Kinded Types in a Lower Kinded Language: Functional Programming in Kotlin

location_city Sydney schedule May 22nd 12:15 - 12:45 PM AEST place Green Room people 83 Interested

It's hard coming back down to the earth of a JVM based language after spending time with Haskell and OCaml. The type systems are enviable, and the abstractions available are incredibly powerful.

Yallop and White's paper on Lightweight Higher-Kinded Polymorphism has been an inspiration for many libraries seeking to add functional abstractions to languages that don't support them. For Kotlin, one library is [Arrow](arrow-kt.io), which provides incredibly powerful abstractions over native language capabilities like co-routines, reactive-streams and nullable types.

This talk will discuss functional programming in Kotlin with the Arrow library, how the abstractions it provides can improve your code, and how this magic that provides higher-kinded types works under the hood.


Outline/Structure of the Talk

Outline Kotlin very quickly, jump into the Arrow lib and what value it provides. End on a very deep dive of the approach they use from the paper to provide "higher kinded types" in the language.

Learning Outcome

How to effectively use the abstractions provided by Arrow, as well as how they provide these niceties.

Target Audience

Java/Kotlin devs working on JVM or Android

Prerequisites for Attendees

Some Java/Kotlin but not a hard requirement. Going to deep dive into some functional techniques, and some interesting walkthrough of the Yallop and White paper on how the effect is achieved.

schedule Submitted 5 years ago