To support the same types F# Core supports with task, specifically in let! and do!, we'll need to implement the ^TaskLike SRTP approach. This prevents ambiguities caused by Task<'T> :> Task. It also limits the needed overloads for ValueTask<'T> and ValueTask.
Related to #43, which can only be implemented by using this approach.
This change will unify the types supported between task and taskSeq, except for async, which should be added next (see #79).
To support the same types F# Core supports with
task
, specifically inlet!
anddo!
, we'll need to implement the^TaskLike
SRTP approach. This prevents ambiguities caused byTask<'T> :> Task
. It also limits the needed overloads forValueTask<'T>
andValueTask
.Related to #43, which can only be implemented by using this approach.
This change will unify the types supported between
task
andtaskSeq
, except forasync
, which should be added next (see #79).