I'm reading the doc of package async, and trying to find something similar to JavaScript's Promise, and I find Concurrently, which is the most close concept that implemented Functor, Applicative (Promise.all), Alternative (Promise.race). But it doesn't implement Monad (Promise.then), I'm wondering why.
I think it maybe because (>>=) is a sequential operation, which conflict with the name Concurrently, but is this the only reason? is there some more important reason here?