('errorInput list -> 'errorOutput list) -> Validation<'ok, 'errorInput>
-> Validation<'ok, 'errorOutput>
// string -> int
let getErrorCode (messages: string list) =
match messages |> List.tryFind ((=) "bad things happened") with
| Some _ -> [1]
| _ -> [0]
let result =
Validation.ok "all good" // Validation<string, string>
|> Validation.mapErrors getErrorCode // Validation<string, int>
// Ok "all good"
let result : Validation<string, int> =
Validation.error "bad things happened" // Validation<string, string>
|> Validation.mapErrors getErrorCode // Validation<string, int>
// Error [1]