λ λ λ λ λ λ λ

Where functional programmers gather.

forall a. (a -> b) -> f a -> f b

Learn Haskell

From first principles to advanced type-level programming. Tutorials crafted for every level of experience, with interactive examples and clear explanations.

Type Theory

Deep dives into the type system that makes Haskell unique. Hindley-Milner inference, GADTs, type families, and the Curry-Howard correspondence explained with care.

Community Projects

Open-source libraries and tools built by Haskellers for Haskellers. Discover well-typed solutions to real-world problems, from web frameworks to compilers.

Events

Meetups, conferences, and workshops where the Haskell community gathers. ZuriHac, Haskell Symposium, and local user groups worldwide.

Functor f => (a -> b) -> f a -> f b
module Main where

safeDivide :: Int -> Int -> Maybe Int
safeDivide _ 0 = Nothing
safeDivide x y = Just (x `div` y)

main :: IO ()
main = do
  let result = safeDivide 10 3
  putStrLn ("Result: " ++ show result)
Maybe Int
IO ()
Just
Monad m => m a -> (a -> m b) -> m b

GHC Docs

The Glasgow Haskell Compiler documentation. Complete reference for language extensions and runtime behavior.

Hackage

The Haskell package archive. Over 15,000 libraries for every purpose, from parsers to web servers.

Haskell Wiki

Community-maintained knowledge base. Tutorials, patterns, and collected wisdom from decades of functional programming.

Stack Overflow

The haskell tag. Thousands of answered questions with clear, well-typed solutions.

r/haskell

The Haskell subreddit. Discussion, announcements, and debates from the global community.

Haskell Foundation

The organization stewarding Haskell's future. Funding, governance, and strategic direction for the ecosystem.