Building a modern functional compiler from first principles.
Stephen Diehl
[![Build Status](https://travis-ci.org/sdiehl/write-you-a-haskell.svg)](https://travis-ci.org/sdiehl/write-you-a-haskell)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sdiehl/write-you-a-haskell?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge)
[![MIT License](http://img.shields.io/badge/license-mit-blue.svg)](https://github.com/sdiehl/write-you-a-haskell/blob/master/LICENSE)
Read Online:
* [**HTML**](http://dev.stephendiehl.com/fun/)
* [**PDF**](http://dev.stephendiehl.com/fun/WYAH.pdf)
Releases
--------
**December**
* [Chapter 1: Introduction](http://dev.stephendiehl.com/fun/000_introduction.html)
* [Chapter 2: Haskell Basics](http://dev.stephendiehl.com/fun/001_basics.html)
* [Chapter 3: Parsing](http://dev.stephendiehl.com/fun/002_parsers.html)
* [Chapter 4: Lambda Calculus](http://dev.stephendiehl.com/fun/003_lambda_calculus.html)
**January**
* [Chapter 5: Type Systems](http://dev.stephendiehl.com/fun/004_type_systems.html)
* [Chapter 6: Evaluation](http://dev.stephendiehl.com/fun/005_evaluation.html)
* [Chapter 7: Hindley-Milner Inference](http://dev.stephendiehl.com/fun/006_hindley_milner.html)
* [Chapter 8: Design of ProtoHaskell](http://dev.stephendiehl.com/fun/007_path.html)
**February**
* Chapter 9: Extended Parser
* Chapter 10: Custom Datatypes
* Chapter 11: Renamer
* Chapter 12: Pattern Matching & Desugaring
**March**
* Chapter 13: System-F
* Chapter 14: Type Classes
* Chapter 15: Core Language
**April**
* Chapter 16: Kinds
* Chapter 17: Haskell Type Checker
* Chapter 18: Core Interpreter
* Chapter 19: Prelude
**May**
* Chapter 20: Design of Lazy Evaluation
* Chapter 21: STG
**June**
* Chapter 22: Compilation
* Chapter 23: Design of the Runtime
**July**
* Chapter 24: Imp
* Chapter 25: Code Generation ( C )
* Chapter 26: Code Generation ( LLVM )
**August**
* Chapter 27: Row Polymorphism & Effect Typing
* Chapter 28: Future Work
Contributing
------------
Any and all contributions are always welcome. As always, I rely on the
perpetual kindness and goodwill of Haskellers (like you!) to help correct
grammar, clarify, and fix errors.
* [Contributing](http://dev.stephendiehl.com/fun/contributing.html)
License
-------
This written work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International License. You may
reproduce and edit this work with attribution for all non-commercial purposes.
The included source is released under the terms of the [MIT License](http://opensource.org/licenses/MIT).