Skip to content

Languages / Haskell

Haskell

A purely functional language with static types and lazy evaluation, used for tools, services and data processing.

Learning and tools

Documentation, practical learning and development tools.

All Haskell resources →
Project

Pandoc

Pandoc is a Haskell library and command-line tool for converting documents between a wide range of markup and publishing formats. Its extensible architecture supports formats including Markdown, HTML, LaTeX, DOCX, EPUB, Jupyter notebooks…

Explore project →
Static analysis tool

ShellCheck

ShellCheck is a command-line analyzer for shell scripts, implemented in Haskell. It reports issues in shell syntax, quoting, portability and command usage, with explanations for its diagnostics. Try a short script in the online editor or…

Explore project →
Live coding

TidalCycles

TidalCycles is a Haskell environment for creating and changing musical patterns while they play. It describes sequences of sounds, notes and other events, with SuperCollider commonly providing synthesis. Start with the installation guide…

Explore project →

Current & upcoming events

All language events →

No current or upcoming events listed. Explore past events or suggest one.

Follow Haskell jobs with Atom → Get updates in your feed reader.

Learn Haskell in two weeks

Mercury Engineering · Published March 5, 2026

Mercury explains how its engineering hires learn Haskell through exercises, daily mentoring and tasks tied to the company's backend. The account covers types, GHCi, testing and web-development work, with an emphasis on feedback. Useful…

Functional Programming in Financial Markets (Experience Report)

Association for Computing Machinery (ACM) · Published August 15, 2024

Standard Chartered Bank has detailed the production use of their Haskell-derived language Mu to orchestrate pricing workflows for their Markets division, which reported $3 billion in operating income. Their Cortex ecosystem, comprising…

8 months of OCaml after 8 years of Haskell in production

Haskell Discourse · Published December 23, 2023

A prominent forum thread dissecting an "OCaml after Haskell" blog post evolved into a multi-month debate on Haskell’s industrial viability. Participants, including library maintainers and Haskell Foundation members, identified ecosystem…

About Haskell and its ecosystem

Haskell is a purely functional language with inferred static types and lazy evaluation. Functions, algebraic data types and pattern matching help you describe transformations and model valid states. Effects such as reading files are represented explicitly in types. These tools can prevent particular classes of mistakes; testing and careful design still matter.

Start learning Haskell

  1. Install the tools. GHCup provides an entry point to the compiler and development tools.
  2. Run a first program. Follow GHCup's First steps to compile a program, explore expressions in GHCi and create a Cabal project.
  3. Make it useful. Build a small command-line tool that reads and transforms a text file. FP Complete's learning collection includes material on command-line options, JSON, HTTP and testing when you need the next piece.

Explore Haskell in practice

Browse Haskell projects, starting with Pandoc, or investigate organizations using Haskell and current job listings. For questions and examples from other developers, visit Haskell Discourse.

Mercury: learning Haskell for backend work

In a 2022 interview, Mercury CTO Max Tagher describes choosing Haskell for backend development and using types to prevent particular mistakes. He also discusses trade-offs around libraries, development speed and hiring.

Mercury's March 2026 account of its engineering training explains how new hires learn through exercises, daily mentoring and work tied to the company's backend. The program covers types, GHCi, testing, JSON handlers and database access. Its two-week format is supported by mentors and a specific codebase; it is an account of that onboarding process.

Explore Mercury on Beyond Tabs for company information and available roles.

Suggest a project or resource

Share a useful Haskell project or resource.

Suggest a project →Suggest a resource →