We can make use of the standard operators in the AsyncValidation Operators module to perform the asyncValidation of the incoming request and capture all the errors as shown below:
By using the AsyncValidation operators instead of the Result operators, we collect all the errors:
Example 2
In the above example, all the TryCreate functions return a string list as the error type (Async<Result<'a, string list>>). If these functions instead returned Async<Result<'a, string>> (only a single error), we can use <*^> and <!^> to get the same result: