0. Preface
1 Overview of Dhall
2 Other features of Dhall's type system
3 Numerical algorithms
4 Programming with functions
5 Typeclasses
6 Leibniz equality types
7 Church encodings of simple types
8 Working with Church-encoded data
9 Church encodings of more complicated types
10 Encoding of greatest fixpoints
11 Translating recursive code into Dhall
12 Combinators for monoids
13 Combinators for functors and contrafunctors
14 Filterable (contra)functors and their combinators
15 Applicative type constructors and their combinators
16 Combinators for foldable and traversable functors
17 Monads and their combinators
18 Monad transformers
19 Free typeclass instances
A Appendix: Deriving a functional language from first principles
B Appendix: Naturality and parametricity
C Appendix: About Dhall code examples in this book
D Appendix: GNU Free Documentation License