Skip to content

TaskEx index #139

Description

@bartelink

Replaces #128 #129

Within the F# ecosystem, there are a number of commonly used augmentations that typically get maintained as internal helpers within libraries and applications, manually copied around in various ways. Examples of such helpers:

While it can be argued that many of these concerns should be addressed in FSharp.Core, these are being logged here first in an attempt to narrow down the number of suggestions, with a view to getting stable naming (and potentially a shims library of some kind as a stopgap). NOTE that building a one stop shop for lots of arbitrary helpers is a non-goal of this effort.

NOTES:

Activity

  1. changed the title [-]TaskShims index[/-] [+]TaskEx index[/+] on Jan 10, 2023
  2. added
    topic: task-exRelated to the proposed new TaskEx library, which should get its own oss haven
    feature requestNew feature or enhancement request
    on Oct 29, 2023
  3. pinned this issue on Mar 18, 2024
  4. added this to the vFuture milestone on Mar 18, 2024
  5. github-actions commented on Mar 15, 2026

    @github-actions
  6. bartelink commented on Mar 18, 2026

    @bartelink
    MemberAuthor

    For avoidance of doubt @github-actions, while the bulk of the post is off topic, its important to note that:

    The TaskEx helpers proposed here (especially Task.ignore / ValueTask.ignore from #140) remain absent from FSharp.Core as of 8.x. The closest thing added in FSharp.Core 8.0 was Task.map, which means callers can write |> Task.map ignore as a reasonable workaround today — though this is less discoverable than a dedicated Task.ignore.

    Is a lie

  7. github-actions commented on Mar 22, 2026

    @github-actions
  8. bartelink commented on Mar 22, 2026

    @bartelink
    MemberAuthor

    @github-actions Please drop the sycophancy; and avoid referring to yourself in the first person for obvious reasons.

    There is no Task.ignore in any FSharp.Core yet, even if there should be.

  9. bartelink commented on Sep 10, 2026

    @bartelink
    MemberAuthor

    Next up is dealing with conflicts over time via deprecation and/or shimming:

    • FSharp.Core Task/ValueTask.ignore(has requiresTypeAttribute in FSC)/map/bind/result(vs fromResult)/empty(vs CompletedTask)
    • local Task.ofAsync/Async.toTask vs FSC Task.startAsyncImmediate with CT
    • local vs FSharp.Core Task.ofValueTask, ValueTask.ofTask duplication (and maybe also ValueTask.ofTask as FSC does not have it)
    • FSharp.Core Async.Await vs Task.toAsync / Async.ofTask / Async.ofTaskUnit (And migrating to correct Async.Await instead of Async.AwaitTask dependency to close TaskEx: AwaitTaskCorrect / Task.toAsync / Async.ofTask #141)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestNew feature or enhancement requesttopic: task-exRelated to the proposed new TaskEx library, which should get its own oss haven

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions