Applicative task
Convert message to Cmd
Opaque type to hold state of running tasks
Opaque type to hold idividual result for joining
Start execution of concurrent tasks and return inital state
Accumulate returned results and produce Cmd
Applicative task