# Haskell

> Purely functional, lazily evaluated language for writing programs as typed functions.

- **Appeared:** 1990
- **Creators:** Haskell Committee, Paul Hudak, Philip Wadler
- **Maintained by:** haskell.org community
- **Type:** functional
- **Status:** alive
- **Born from:** In September 1987 a meeting at the FPCA conference in Portland, Oregon, faced more than a dozen non-strict, purely functional languages with similar power and agreed that a committee should design one common language. The most mature of them, Miranda, was a commercial product of David Turner's company, and Turner declined to let the committee adopt it as the starting point.
- **Reacts to:** miranda, ml
- **Trade-offs:** garbage collected; static types; compiles to native code; concurrency: green. Cost: Laziness makes space use hard to predict, and even experienced programmers struggle with it, so the language later gained strict features.
- **Slots:** server ●●● strong (Facebook's Sigma rule engine runs in Haskell at more than one million requests per second.); cli ●●● strong (Pandoc is a Haskell library and a command-line tool for converting document formats.); config ●●○ ok (xmonad, a tiling window manager, is written and configured in Haskell.); embedded ○○○ none
- **Alternatives:** ocaml, scala, fsharp, rust
- **Won where:** Facebook Sigma, an anti-abuse rule engine rewritten in Haskell, serving over one million requests per second [source](https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/); xmonad, a dynamically tiling X11 window manager written and configured in Haskell [source](https://xmonad.org/); Cardano, whose platform is written in Haskell [source](https://docs.cardano.org/about-cardano/introduction); Pandoc, a document converter that is a Haskell library and a command-line tool [source](https://github.com/jgm/pandoc)
- **Timeline:** 1987: A meeting at FPCA in Portland, Oregon, decides that a committee should design one common language [source](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf); 1990: Haskell 1.0 report, dated 1 April 1990 [source](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf); 1999: Haskell 98 report published, a commitment to a stable language [source](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf); 2007: A History of Haskell is presented at HOPL III in San Diego [source](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf); 2010: Haskell 2010 Language Report is published [source](https://www.haskell.org/onlinereport/haskell2010/); 2015: Facebook rewrites Sigma in Haskell, replacing its in-house FXL language [source](https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/)
- **Links:** [website](https://www.haskell.org), [repo](https://github.com/ghc/ghc), [wikipedia](https://en.wikipedia.org/wiki/Haskell), [docs](https://www.haskell.org/onlinereport/haskell2010/)
- **PLDB:** https://pldb.io/concepts/haskell.html
- **Sources:** https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf, https://www.haskell.org/onlinereport/haskell2010/, https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/, https://xmonad.org/, https://docs.cardano.org/about-cardano/introduction, https://github.com/jgm/pandoc, https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html, https://downloads.haskell.org/ghc/latest/docs/users_guide/codegens.html, https://hackage-content.haskell.org/package/base-4.22.0.0/docs/Control-Concurrent.html, https://pldb.io/concepts/haskell.html, https://en.wikipedia.org/wiki/Haskell
- **Verified:** no, draft of 2026-10-30
- **Canonical:** https://langwhy.dev/lang/haskell/

## Why it exists

In September 1987 a meeting at the FPCA conference in Portland, Oregon, faced a problem: more than a dozen non-strict, purely functional languages existed, all similar in power, and their wider use was held back by the lack of a common language ([History of Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf)). The meeting agreed that a committee should design one common language. The most mature candidate, Miranda, was a product of David Turner's company, and Turner declined to let the committee adopt it as the starting point. The committee designed a new language and published version 1.0 of the report, dated 1 April 1990, edited by Paul Hudak and Philip Wadler ([History of Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf)).

## What it trades away

Laziness is the main price. Haskell evaluates an argument only when its value is needed, and the authors admit that it is very hard even for experienced programmers to predict the space a lazy program uses ([History of Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf)). The space leaks this caused led the designers to add strict features such as `seq` and strict data types ([History of Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf)). Its main compiler, GHC, uses a stop-the-world copying garbage collector by default ([GHC guide](https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html); [Wikipedia](https://en.wikipedia.org/wiki/Haskell)).

## Where it won

Haskell's clearest production win is Facebook's Sigma, an anti-abuse rule engine. Facebook reported in 2015 that it had spent two years rewriting Sigma, replacing its in-house FXL language with Haskell, and that the Haskell version serves more than one million requests per second ([Facebook Engineering](https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/)). Pandoc is a Haskell library and a command-line tool for converting document formats ([Pandoc](https://github.com/jgm/pandoc)). xmonad, a tiling window manager, is written and configured in Haskell ([xmonad](https://xmonad.org/)), and the Cardano platform is written in Haskell too ([Cardano](https://docs.cardano.org/about-cardano/introduction)).

---
Data: CC0, https://github.com/langwhy/langwhy/blob/main/data/languages/haskell.yaml
