Breadth-first numbering: lessons from a small exercise in algorithm design

Every programmer has blind spots. Breadth-first numbering is an interesting toy problem that exposes a blind spot common to many---perhaps most---functional programmers.