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 for simple types
8 Working with Church-encoded data
9 Church encodings for more complicated types
10 Co-inductive types
11 Translating recursive code into Dhall
12 Combinators for monoids
13 Combinators for functors and contrafunctors
14 Filterable (contra)functors
15 Applicative type constructors
16 Traversable functors
17 Monads
18 Monad transformers
19 Free typeclass instances
20 Dhall as a scripting DSL
A Appendix: Naturality and parametricity