Haskell 1.0 was published in April 1990 by a committee of researchers who wanted one shared, open, lazy functional language instead of a dozen incompatible ones. The question of why the Haskell language was named after Haskell Curry has a simple answer: Curry was the American logician whose combinatory logic and work on functions of one argument (the technique now called currying) sit at the base of the language.
Origins: one language instead of many
By the mid-1980s, lazy functional programming was an active research field, but every group had its own language: Miranda, Lazy ML, Orwell, Hope, Alfl, Clean and others. Miranda, by David Turner, was the most popular, but it was proprietary. At the Functional Programming Languages and Computer Architecture conference (FPCA) in Portland, Oregon, in September 1987, a group of researchers agreed to design a common language that anyone could use for teaching, research and real applications.
The committee included Paul Hudak, Philip Wadler, Simon Peyton Jones, John Hughes, Lennart Augustsson and others. Their 2007 paper "A History of Haskell: Being Lazy with Class" describes the process in detail.
Why the Haskell language was named after Haskell Curry
The committee needed a name that honoured the field's roots without favouring any existing language. Haskell Brooks Curry (1900–1982) had developed combinatory logic and studied what is now known as the Curry–Howard correspondence between proofs and programs. "Curry" itself was considered, but the first name won. According to the HOPL paper, members visited Curry's widow, Virginia Curry, to ask permission, and she agreed. The name fit: in Haskell every function technically takes one argument, and multi-argument functions are curried by default.
Design and key features
- Lazy evaluation: expressions are evaluated only when their values are needed, which lets you define infinite lists and separate generation from consumption.
- Purity: functions have no side effects, so the same input always gives the same output.
- Type classes, proposed by Philip Wadler and Stephen Blott in 1988, give principled overloading. Rust traits and Swift protocols owe a lot to them.
- Hindley–Milner type inference: strong static types with few annotations.
- Monads for I/O: building on Eugenio Moggi's work, Wadler showed how monads could model effects. Monadic I/O became standard in Haskell 1.3 (1996), solving the awkward early question of how a pure language talks to the world.
A short Haskell example
The classic lazy definition of the Fibonacci sequence as an infinite list:
fibs :: [Integer]
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
main :: IO ()
main = do
print (take 10 fibs)
print (takeWhile (< 1000) (filter even fibs))
Only the elements actually requested are ever computed, even though fibs is conceptually endless.
Versions and compilers
| Year | Milestone |
|---|---|
| 1990 | Haskell 1.0 report |
| 1992 | GHC, the Glasgow Haskell Compiler, first released |
| 1996 | Haskell 1.3: monadic I/O, constructor classes |
| 1999 | Haskell 98 report (revised 2003), the long-term stable standard |
| 2010 | Haskell 2010 report: FFI, hierarchical modules |
In practice, Haskell today means GHC. Much modern Haskell relies on GHC language extensions, and the GHC2021 and GHC2024 language editions bundle the most widely used ones. Other implementations such as Hugs, once popular in teaching, are no longer maintained.
Where Haskell is used today
Haskell has a reputation as an academic language, yet it runs some well-known software:
- Pandoc, John MacFarlane's universal document converter.
- ShellCheck, the static analyzer for shell scripts.
- xmonad, a tiling window manager configured in Haskell itself.
- Sigma at Meta (Facebook), the anti-spam rule engine, built on the Haxl library.
- Financial firms such as Standard Chartered, plus the Cardano blockchain.
Influence and legacy
Haskell's biggest impact may be on other languages. Python borrowed list comprehensions, C# and LINQ took monadic query ideas, Scala and Swift absorbed type classes and optionals, and Rust's traits and Option/Result types are recognisably Haskell-flavoured. Dependently typed languages like Agda and Idris use Haskell-like syntax, and Elm and PureScript carry its style to the browser. Understanding why the Haskell language was named after Haskell Curry also explains the culture around it: it was built by researchers to put logic and mathematics directly into everyday programming.
Frequently asked questions
Did Haskell Curry ever know about the Haskell language?
No. Curry died in 1982, five years before the committee was formed in 1987. The committee asked his widow, Virginia Curry, for permission to use the name. Curry's name also lives on in the term "currying".
Why didn't the committee just use Miranda?
Miranda was a commercial product owned by Research Software Ltd, and its owner did not want it turned into an open standard. The researchers wanted a freely available language anyone could implement and extend. Haskell borrowed much of Miranda's syntax but was open from the start.
Is Haskell worth learning in 2026?
For many programmers, yes, even if they never ship Haskell code. It teaches type-driven design, purity and lazy evaluation in their clearest form. Those ideas transfer directly to Rust, Scala, Swift, TypeScript and modern functional libraries.







