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^TaskLikeSRTP 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
taskandtaskSeq, except forasync, which should be added next (see #79).