Overall structure

Techniques & libraries

Attribute Grammars

Extreme programming

Parsec

Lazy Virtual Machine

Constraint-based type inference

Intermediate data types

Unified Haskell Architecture

Core

Modules

Main

Compile

Front-end

Lexer

Layout-rule

Parser

Operators & priorities

Putting multiple functionbindings together

Static Analysis

Typeinference

Other static checks

Back-end

Case studies: enhancing the compiler

Adding a static check

Using another backend

Providing a new syntax

Inserting a better pattern-matching compiler

Appendices

AG by example