// string -> int
let getErrorCode (messages: string list) =
match messages |> List.tryFind ((=) "bad things happened") with
| Some _ -> [1]
| _ -> [0]
Example 1
let result =
AsyncValidation.ok "all good" // AsyncValidation<string, string>
|> AsyncValidation.mapErrors getErrorCode // AsyncValidation<string, int>
// async { Ok "all good" }
Example 2
let result : AsyncValidation<string, int> =
AsyncValidation.error "bad things happened" // AsyncValidation<string, string>
|> AsyncValidation.mapErrors getErrorCode // AsyncValidation<string, int>
// async { Error [1] }