Hacker News new | ask | show | jobs
by nextaccountic 1886 days ago
> Everything is async in Haskell, so you don’t need to think about it,

Then why does https://hackage.haskell.org/package/async exist?

2 comments

I think what he means is that everything in Haskell is "async" because the language runtime is lazy and types can encode parallelism: monads and functors fro sequential, blocking code, while applicatives for independent code.

Not sure if it's actually correct though.

Nothing to do with laziness. It just means you cannot accidentally call blocking (sync) operation from a lightweight (async) thread and block a whole bunch of other lightweight threads like in Rust, C#, or other languages with explicit “async” keyword
Please keep in mind it’s a library, not a language extension. It exists same reason any other library exists. It’s a useful set of combinators