Part I
The Haskell 2010 Language

1 Introduction
 1.1 Program Structure
 1.2 The Haskell Kernel
 1.3 Values and Types
 1.4 Namespaces
2 Lexical Structure
 2.1 Notational Conventions
 2.2 Lexical Program Structure
 2.3 Comments
 2.4 Identifiers and Operators
 2.5 Numeric Literals
 2.6 Character and String Literals
 2.7 Layout
3 Expressions
 3.1 Errors
 3.2 Variables, Constructors, Operators, and Literals
 3.3 Curried Applications and Lambda Abstractions
 3.4 Operator Applications
 3.5 Sections
 3.6 Conditionals
 3.7 Lists
 3.8 Tuples
 3.9 Unit Expressions and Parenthesized Expressions
 3.10 Arithmetic Sequences
 3.11 List Comprehensions
 3.12 Let Expressions
 3.13 Case Expressions
 3.14 Do Expressions
 3.15 Datatypes with Field Labels
 3.16 Expression Type-Signatures
 3.17 Pattern Matching
4 Declarations and Bindings
 4.1 Overview of Types and Classes
 4.2 User-Defined Datatypes
 4.3 Type Classes and Overloading
 4.4 Nested Declarations
 4.5 Static Semantics of Function and Pattern Bindings
 4.6 Kind Inference
5 Modules
 5.1 Module Structure
 5.2 Export Lists
 5.3 Import Declarations
 5.4 Importing and Exporting Instance Declarations
 5.5 Name Clashes and Closure
 5.6 Standard Prelude
 5.7 Separate Compilation
 5.8 Abstract Datatypes
6 Predefined Types and Classes
 6.1 Standard Haskell Types
 6.2 Strict Evaluation
 6.3 Standard Haskell Classes
 6.4 Numbers
7 Basic Input/Output
 7.1 Standard I/O Functions
 7.2 Sequencing I/O Operations
 7.3 Exception Handling in the I/O Monad
8 Foreign Function Interface
 8.1 Foreign Languages
 8.2 Contexts
 8.3 Lexical Structure
 8.4 Foreign Declarations
 8.5 Specification of External Entities
 8.6 Marshalling
 8.7 The External C Interface
9 Standard Prelude
 9.1 Prelude PreludeList
 9.2 Prelude PreludeText
 9.3 Prelude PreludeIO
10 Syntax Reference
 10.1 Notational Conventions
 10.2 Lexical Syntax
 10.3 Layout
 10.4 Literate comments
 10.5 Context-Free Syntax
 10.6 Fixity Resolution
11 Specification of Derived Instances
 11.1 Derived instances of Eq and Ord
 11.2 Derived instances of Enum
 11.3 Derived instances of Bounded
 11.4 Derived instances of Read and Show
 11.5 An Example
12 Compiler Pragmas
 12.1 Inlining
 12.2 Specialization
 12.3 Language extensions