Sign in Go Pro

Functional programming in Kotlin with Arrow

Monad Comprehensions / Monad Bindings

This lesson is for PRO members.

Upgrade today to get access to all the PRO lessons.

Unlock this lesson

Up next



They are also known as Monad Bindings. The bindings are a way to sugarize asynchronous code to make it look like imperative. They are very close to the async await approach. But they also provide other things on top of it. On this lesson, you will learn about:

  • The capability to write asynchronous code in imperative / synchronous style. Therefore removing accumulative indentation levels.
  • How they lift resulting values into the context of the data type launching the binding.
  • How they are mainly useful for flatMapping scenarios like the ones described in the previous lesson.
  • How to force blocking resolution of an async call inside of them to provide the sugar.
  • How Monad Comprehensions are written over kotlinx.coroutines.
  • Learn about some different binding types available.


There are no comments on this lesson, start the conversation below ...


Lessons in Functional programming in Kotlin with Arrow