Async<Result<'a, 'b>> list -> Async<Result<'a list, 'b>>
sequence is the same as
traverse id. See also List.traverseAsyncResultM.
This is monadic, stopping on the first error.
This is the same as sequenceResultM except that it uses
Async<Result<_,_>> instead of
See also Scott Wlaschin's Understanding traverse and sequence.