The "Monad Tutorial Fallacy" (2009)

Dynamic programming in Haskell: automatic memoization

Competitive programming in Haskell: better binary search

Swarm: preview and call for collaboration

Abstraction, intuition, and the “monad tutorial fallacy” (2009)

Competitive programming in Haskell: monoidal accumulation

Types versus sets in math and programming languages

Conversations with a six-year-old on functional programming (2018)

What would Dijkstra do? Proving the associativity of min

Counting Inversions via Rank Queries

Worstsort

Conversations with a six-year-old on functional programming

Off the Beaten Track: Explaining Type Errors

The Typeclassopedia is now up-to-date

How to print things

Avoiding the axiom of choice, part I