A concurrency monad based on constructor primitives