Scala has Future (which yes does form a monad) which is very much the same thing as Clojure&#x27;s core.async macro or Quasar&#x27;s annotation-and-bytecode-manipulation and is very much directly comparable, it&#x27;s just Scala&#x27;s type system is powerful enough that you can do that in ordinary code rather than a language-level special feature. Akka is also an option, though not one that I like.