I had an insightful discussion on haskell-cafe on how to steal the implementation of monadic bind from a continuation monad transformer.
I did it twice, first re-inventing the two-continuation model for depth-first search, then discovering an implementation of breadth-first search that I didn’t know before.
On the go, I used higher-rank infix record selectors for the first time.
In this program I talk about monads for non-determinism, functional lists, continuations, and what you get for free when you combine them.