From 425a337182633661fe6baf26fd11c913fdaaeb21 Mon Sep 17 00:00:00 2001 From: Jimmy Byrd Date: Wed, 1 Dec 2021 10:17:06 -0500 Subject: [PATCH] Seq.sequenceResultM returns seq --- src/FsToolkit.ErrorHandling/Seq.fs | 4 ++-- tests/FsToolkit.ErrorHandling.Tests/Seq.fs | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/FsToolkit.ErrorHandling/Seq.fs b/src/FsToolkit.ErrorHandling/Seq.fs index 927d7383..9a1c2e99 100644 --- a/src/FsToolkit.ErrorHandling/Seq.fs +++ b/src/FsToolkit.ErrorHandling/Seq.fs @@ -3,13 +3,13 @@ namespace FsToolkit.ErrorHandling [] module Seq = - let sequenceResultM (xs: seq>) : Result<'t list, 'e> = + let sequenceResultM (xs: seq>) : Result<'t seq, 'e> = let rec loop xs ts = match Seq.tryHead xs with | Some x -> x |> Result.bind (fun t -> loop (Seq.tail xs) (t :: ts)) - | None -> Ok(List.rev ts) + | None -> Ok(List.rev ts |> List.toSeq) // Seq.cache prevents double evaluation in Seq.tail loop (Seq.cache xs) [] diff --git a/tests/FsToolkit.ErrorHandling.Tests/Seq.fs b/tests/FsToolkit.ErrorHandling.Tests/Seq.fs index a23a80c0..1b201559 100644 --- a/tests/FsToolkit.ErrorHandling.Tests/Seq.fs +++ b/tests/FsToolkit.ErrorHandling.Tests/Seq.fs @@ -24,6 +24,7 @@ let sequenceResultMTests = let actual = Seq.sequenceResultM (Seq.map Tweet.TryCreate tweets) + |> Result.map Seq.toList Expect.equal actual expected "Should have an empty list of valid tweets" @@ -34,6 +35,7 @@ let sequenceResultMTests = let actual = Seq.sequenceResultM (Seq.map Tweet.TryCreate tweets) + |> Result.map Seq.toList Expect.equal actual expected "Should have a list of valid tweets"