diff --git a/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fs b/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fs index 0b2e370..6ac6d0e 100644 --- a/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fs +++ b/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fs @@ -534,7 +534,7 @@ module LowPriority = // - Task<'T> (because it only implements GetResult() -> unit, not GetResult() -> 'TResult) [] - member inline _.Bind< ^TaskLike, 'T, 'U, ^Awaiter, 'TOverall + member inline _.Bind< ^TaskLike, 'T, 'U, ^Awaiter when ^TaskLike: (member GetAwaiter: unit -> ^Awaiter) and ^Awaiter :> ICriticalNotifyCompletion and ^Awaiter: (member get_IsCompleted: unit -> bool) diff --git a/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fsi b/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fsi index 4c185be..e060704 100644 --- a/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fsi +++ b/src/FSharp.Control.TaskSeq/TaskSeqBuilder.fsi @@ -173,7 +173,7 @@ module LowPriority = type TaskSeqBuilder with [] - member inline Bind< ^TaskLike, 'T, 'U, ^Awaiter, 'TOverall> : + member inline Bind< ^TaskLike, 'T, 'U, ^Awaiter> : task: ^TaskLike * continuation: ('T -> ResumableTSC<'U>) -> ResumableTSC<'U> when ^TaskLike: (member GetAwaiter: unit -> ^Awaiter) and ^Awaiter :> ICriticalNotifyCompletion