sdiehl/write-you-a-haskell

Building a modern functional compiler from first principles.

View on GitHub ↗Jump to charts ↓

sdiehl/write-you-a-haskell has 3k+ stars and 250+ forks on GitHub, is written in Rust, and was last pushed on Oct 18, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 31 minutes ago
Added to GitGenius on October 11th, 2026
Created on January 5th, 2015
Open Issues & Pull Requests: 22 (+0)
GitHub issues: Disabled - open counts may still include pull requests.
Number of forks: 258
Total Stargazers: 3,479 (+0)
Total Subscribers: 176 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.
Sign in

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

GitHub issues are disabled for this repository, so issue analytics and the issue explorer are not available.

Detailed Description

Write You a Haskell is a comprehensive educational book that teaches compiler construction by building a modern functional compiler from first principles.

The book addresses the challenge of understanding how compilers work by guiding readers through the complete implementation of a functional language. It starts with foundational concepts like parsing and lambda calculus, then progressively builds toward a full compiler pipeline. The approach combines theoretical grounding in type systems and formal semantics with practical implementation details, covering Hindley-Milner type inference, pattern matching compilation, closure conversion, and code generation targeting LLVM.

This resource suits developers who want deep knowledge of compiler internals rather than a quick reference. It works best for those comfortable with functional programming concepts and willing to engage with both theory and implementation across multiple chapters. The book progresses from simple interpreters through increasingly sophisticated compiler stages, making it suitable for self-study or as supplementary material for a programming languages course. Unlike quick tutorials, the project provides exhaustive coverage of production compiler concerns including garbage collection, optimization, and runtime design.

The project maintains a stable, complete curriculum with all chapters published and accessible in both HTML and PDF formats. The build system requires Rust, LLVM, and Boehm GC, indicating the material includes working code examples that readers can compile and experiment with locally. The repository accepts contributions, suggesting ongoing refinement of the educational content.