Skip to content

Commit 4576079

Browse files
authored
Seq.sequenceResultM returns seq (#159)
1 parent ea5de2f commit 4576079

File tree

2 files changed

+4
-2
lines changed
  • src/FsToolkit.ErrorHandling
  • tests/FsToolkit.ErrorHandling.Tests

2 files changed

+4
-2
lines changed

src/FsToolkit.ErrorHandling/Seq.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ namespace FsToolkit.ErrorHandling
33
[<RequireQualifiedAccess>]
44
module Seq =
55

6-
let sequenceResultM (xs: seq<Result<'t, 'e>>) : Result<'t list, 'e> =
6+
let sequenceResultM (xs: seq<Result<'t, 'e>>) : Result<'t seq, 'e> =
77
let rec loop xs ts =
88
match Seq.tryHead xs with
99
| Some x ->
1010
x
1111
|> Result.bind (fun t -> loop (Seq.tail xs) (t :: ts))
12-
| None -> Ok(List.rev ts)
12+
| None -> Ok(List.rev ts |> List.toSeq)
1313

1414
// Seq.cache prevents double evaluation in Seq.tail
1515
loop (Seq.cache xs) []

tests/FsToolkit.ErrorHandling.Tests/Seq.fs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ let sequenceResultMTests =
2424

2525
let actual =
2626
Seq.sequenceResultM (Seq.map Tweet.TryCreate tweets)
27+
|> Result.map Seq.toList
2728

2829
Expect.equal actual expected "Should have an empty list of valid tweets"
2930

@@ -34,6 +35,7 @@ let sequenceResultMTests =
3435

3536
let actual =
3637
Seq.sequenceResultM (Seq.map Tweet.TryCreate tweets)
38+
|> Result.map Seq.toList
3739

3840
Expect.equal actual expected "Should have a list of valid tweets"
3941

0 commit comments

Comments
 (0)