diff --git a/src/FSharp.Control.AsyncSeq/AsyncSeq.fs b/src/FSharp.Control.AsyncSeq/AsyncSeq.fs index f749ea7b..6ec35694 100644 --- a/src/FSharp.Control.AsyncSeq/AsyncSeq.fs +++ b/src/FSharp.Control.AsyncSeq/AsyncSeq.fs @@ -1700,8 +1700,9 @@ module AsyncSeq = /// Merges all specified async sequences into an async sequence non-deterministically. // By moving the last emitted task to the end of the array, this algorithm achieves max-min fairness when merging AsyncSeqs - let mergeAll (ss:AsyncSeq<'T> list) : AsyncSeq<'T> = + let mergeAll (ss:seq>) : AsyncSeq<'T> = asyncSeq { + let ss = Seq.toArray ss let n = ss.Length let moveToEnd i (a: 'a[]) = diff --git a/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi b/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi index 15c1bf56..78504ea9 100644 --- a/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi +++ b/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi @@ -502,7 +502,7 @@ module AsyncSeq = /// Merges all specified async sequences into an async sequence non-deterministically. /// The resulting async sequence produces elements when any argument sequence produces an element. - val mergeAll : sources:AsyncSeq<'T> list -> AsyncSeq<'T> + val mergeAll : sources:seq> -> AsyncSeq<'T> #endif /// Returns an async sequence which contains no contiguous duplicate elements based on the specified comparison function.