As someone who loves Haskell more than any other language, some challenges are- the tooling is decades behind, say, Rust or Go
- finding the right library in looks very different in Haskell--you frequently start with the signature on Hoogle. Agents can learn this but it's not the same as "web search"
- creating the right solution also looks different. It's usually borne out of thinking about the types and coming up with the correct algebra. Again models can probably learn to create the right types and orient the solution around that, but it's not automatic
- same today as yesterday, laziness is a blessing and a curse. The runtime can do unpredictable things when you suddenly evaluate a deep thunk
- GHC directives effectively mean there are multiple "Haskells"
Some of those are a result of the "avoid success at all costs" mantra. You can't shake that off in a day. It will take a concerted effort to make it more amenable for seamless adoption.
Haskell continues to be my favorite language to write and read, but Rust is the more practical language with a rich type system. If you're looking for something approaching Haskell's expressiveness but with fewer of these issues, check out PureScript.
5/21/2026
at
7:32:15 AM
No way tooling is decades behind. You have a decent LSP, debugger, package manager and REPL.Laziness is hard to observe, maybe Strict and StrictData would become more popular in use within this context.
I haven't checked in a while now if effects have become the norm in the ecosystem, or if some solution exists for "string" types, but for me all of Haskell's expressivity is lost in the noise of endless conversion function, wrapper types when stacking monads, and import fiddling.
by mhitza
5/21/2026
at
9:11:41 AM
The package manager/build system is anything but decent. Any Haskell project will involve at least 24 hours worth of manual dependency conflict resolution.
by Pay08
5/21/2026
at
10:20:05 AM
No, this is not the reality of using Haskell packages.The problem you describe was solved more than a decade ago.
You use a Stackage snapshot (https://www.stackage.org/lts) which is a curation of packages that work together, similar to a Linux distribution like Debian, carrying one version per package.
Our company using Haskell has not spent 1 minute doing "dependency resolution" in the last 10 years, not has anybody we know.
by nh2
5/21/2026
at
7:52:49 AM
> - the tooling is decades behind, say, Rust or GoIf only Rust had something like GHCi.
Stack and Cabal have longer history than cargo, and Stackage for puzzle dependencies.
> - GHC directives effectively mean there are multiple "Haskells"
A bit like macro libraries and what features are enabled where in Rust
by pjmlp
5/21/2026
at
11:04:28 AM
> the tooling is decades behind, say, Rust or GoCan AI not help speed this up?
As someone who DOESN'T use Haskell... What specifically is it missing?
Are you conflating ecosystem with tooling?
> If you're looking for something approaching Haskell's expressiveness but with fewer of these issues, check out PureScript
Rust is quite expressive. Is Haskell really substantially much more?
I do think Rust is a great language for LLMs because I think expressiveness is key.
by onlyrealcuzzo
5/21/2026
at
11:16:43 AM
Haskell is more easily compared with e.g. OCaml than with something like Rust. (It's worth noting that OCaml now has its own 'rustified' development OxCaml.) The main practical difference is that Haskell is idiomatically based on lazy evaluation, whereas OCaml is strict. This makes corecursive patterns a bit easier to express in Haskell, but OCaml and OxCaml are friendlier wrt. performance concerns.
by zozbot234
5/21/2026
at
5:23:11 PM
That's a fair question. It's part ecosystem, part tooling. The ghcup, stack, cabal mishmash is closer to maven than a tool with a modern streamlined UI like cargo.And yes, Haskell is significantly more expressive than Rust--at the cost of performance.
by the-grump