HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
TheAngryByrd
IcedTasks
F#2024–2025
TheAngryByrd / IcedTasks

IcedTasks

F# Cold Tasks and Cancellable Tasks

2Distinct people
3Mentions
0Explicit recommenders
150GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

F# Cold Tasks and Cancellable Tasks

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2024-10-08 19:29:15 UTC to 2025-04-02 20:13:04 UTC. Weeks start Monday, UTC.

0122024-10-07 00:00:00 UTC to 2024-10-14 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 72024-10-14 00:00:00 UTC to 2024-10-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-10-21 00:00:00 UTC to 2024-10-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-10-28 00:00:00 UTC to 2024-11-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-04 00:00:00 UTC to 2024-11-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-11 00:00:00 UTC to 2024-11-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-18 00:00:00 UTC to 2024-11-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-25 00:00:00 UTC to 2024-12-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-02 00:00:00 UTC to 2024-12-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-09 00:00:00 UTC to 2024-12-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-16 00:00:00 UTC to 2024-12-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-23 00:00:00 UTC to 2024-12-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-30 00:00:00 UTC to 2025-01-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsDec 302025-01-06 00:00:00 UTC to 2025-01-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-13 00:00:00 UTC to 2025-01-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-20 00:00:00 UTC to 2025-01-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-27 00:00:00 UTC to 2025-02-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-03 00:00:00 UTC to 2025-02-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-10 00:00:00 UTC to 2025-02-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-17 00:00:00 UTC to 2025-02-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-24 00:00:00 UTC to 2025-03-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-03 00:00:00 UTC to 2025-03-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-10 00:00:00 UTC to 2025-03-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-17 00:00:00 UTC to 2025-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-24 00:00:00 UTC to 2025-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-31 00:00:00 UTC to 2025-04-07 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsMar 31

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 72024-10-07 00:00:00 UTC2024-10-14 00:00:00 UTC101
Oct 142024-10-14 00:00:00 UTC2024-10-21 00:00:00 UTC000
Oct 212024-10-21 00:00:00 UTC2024-10-28 00:00:00 UTC000
Oct 282024-10-28 00:00:00 UTC2024-11-04 00:00:00 UTC000
Nov 42024-11-04 00:00:00 UTC2024-11-11 00:00:00 UTC000
Nov 112024-11-11 00:00:00 UTC2024-11-18 00:00:00 UTC000
Nov 182024-11-18 00:00:00 UTC2024-11-25 00:00:00 UTC000
Nov 252024-11-25 00:00:00 UTC2024-12-02 00:00:00 UTC000
Dec 22024-12-02 00:00:00 UTC2024-12-09 00:00:00 UTC000
Dec 92024-12-09 00:00:00 UTC2024-12-16 00:00:00 UTC000
Dec 162024-12-16 00:00:00 UTC2024-12-23 00:00:00 UTC000
Dec 232024-12-23 00:00:00 UTC2024-12-30 00:00:00 UTC000
Dec 302024-12-30 00:00:00 UTC2025-01-06 00:00:00 UTC000
Jan 62025-01-06 00:00:00 UTC2025-01-13 00:00:00 UTC000
Jan 132025-01-13 00:00:00 UTC2025-01-20 00:00:00 UTC000
Jan 202025-01-20 00:00:00 UTC2025-01-27 00:00:00 UTC000
Jan 272025-01-27 00:00:00 UTC2025-02-03 00:00:00 UTC000
Feb 32025-02-03 00:00:00 UTC2025-02-10 00:00:00 UTC000
Feb 102025-02-10 00:00:00 UTC2025-02-17 00:00:00 UTC000
Feb 172025-02-17 00:00:00 UTC2025-02-24 00:00:00 UTC000
Feb 242025-02-24 00:00:00 UTC2025-03-03 00:00:00 UTC000
Mar 32025-03-03 00:00:00 UTC2025-03-10 00:00:00 UTC000
Mar 102025-03-10 00:00:00 UTC2025-03-17 00:00:00 UTC000
Mar 172025-03-17 00:00:00 UTC2025-03-24 00:00:00 UTC000
Mar 242025-03-24 00:00:00 UTC2025-03-31 00:00:00 UTC000
Mar 312025-03-31 00:00:00 UTC2025-04-07 00:00:00 UTC202

What Hacker News says

3 sources
Read this first: https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref... There are multiple alternate asynchronous computation expression implementations which give different ergonomics and behavior (like https://github.com/TheAngryByrd/IcedTasks). There's an entire CE extension to specifically enable this kind of convenience and flexibility too: https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0... None of this is possible in C#, at least without jumping through many hoops and ending up with extra boilerplate (and this is okay, C# has enough of its own complexity). As cjbgkagh noted, providing this type of control is the whole point and what makes F# so powerful.
In Why F#?
`async` is F#'s original implementation of async programming. It is the precursor to C#'s await/async. `task` targets the .NET TPL instead, which is also what C#'s await/async and all of .NET *Async methods use. While the `async` implementation still offers some benefits over `task` (cold vs. hot starts [0]), my advice is - if you're doing backend code on .NET, you should use task. The tigher integration with the .NET ecosystem & runtime results in better exception stack traces, easier debugging and faster performance. [0] https://github.com/TheAngryByrd/IcedTasks?tab=readme-ov-file...
In Why F#?
> One issue I’ve heard from F# devs was the lack of ability to comfortably call C# asynchrony methods This is no longer the case starting with F# 6: https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs... C# and F# can now transparently interoperate using the same main Task<T> type (in the past, this was done via community libraries for C#->F#, and F#->C# was always possible with |> Async.AwaitTask). For advanced usage scenarios, there also exist https://github.com/fsprojects/FSharp.Control.TaskSeq and https://github.com/TheAngryByrd/IcedTasks > Would the async experiment also imply better interop between .NET languages? This is a good question. If a language already uses Task<T> and ValueTask<T>, the interop is already a solved problem (like with F#). However, this could allow to completely remove or at least significantly simpli
Read the rest
fy the implementation for emitting state machines / resumable code / coroutines for asynchronous methods for any language that targets .NET 10+ (it will most likely get into 10 but is not guaranteed yet from what I've heard). For example, a guest language could simply choose to emit calls to async methods with special modreq(?) attribute and the runtime would handle suspension, creating the closure for the state captured by asynchronous continuation and then subsequent resumption without any additional work of that guest language to be async-compatible. You could likely even write that by hand in IL with ILAsm. This is a significant improvement for a .NET as a hosting platform, and arguably makes it better than JVM at some high-level scenarios (because for low-level it already supports almost the entirety of what is expressible with C plus struct generics, and for FP it supports tail. prefix for call* opcodes for mandatory tailcalls required by recursive functions). And for those in the camp of "function coloring considered harmful" (which I'm not a fan of but to each their own), you could even have a guest language that completely hides the fact that it performs such async calls underneath.
In Gleam Is Pragmatic

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.