- why functional programming is the correct way to program
- the elegance of functional programming
- folds
- monads (and typeclasses)
- applicatives
- typeclasses and the typeclass hierarchy
- Wadler and Blott. How to make ad-hoc polymorphism less ad-hoc.
- https://wiki.haskell.org/Typeclassopedia
- Semigroup, Monoid, Arrow, Category, Comonad, and the other typeclasses by Edward Kmett
- parametricity and program calculation
- program calculation, contd
- fusion and optimisation
- DSL embeddings
- DSLs, contd
extras
- Huet. The Zipper
- McBride. The Derivative of a Regular Type is its Type of One-Hole Contexts
- McBride. Clowns to the left of me, jokers to the right.
- Wadler. How to replace failure by a list of successes.
- Hughes. The Design of a Pretty Printer.
- Wadler. A prettier printer.
- Day and Hutton. Compilation a la Carte
- Damas and Milner. Principal type-schemes for functional programs.
- https://wiki.haskell.org/Research_papers/Functional_pearls
- https://www.cs.cmu.edu/~crary/819-f09/