sequenceResult

Option.sequenceResult

Namespace: FsToolkit.ErrorHandling

Function Signature:

Result<'a,'b> option -> Result<'a option, 'b>

Note that sequence is the same as traverse id. See also Option.traverseResult.

See also Scott Wlaschin's Understanding traverse and sequence.

Examples

Example 1

let r1 : Result<int option, string> =
Option.sequenceResult (Some (Ok 42))
// Ok (Some 42)
let r2 : Result<int option, string> =
Option.sequenceResult (Some (Error "something went wrong"))
// Error "something went wrong"
let r3 : Result<int option, string> =
Option.sequenceResult None
// Ok None