Breadth first tree relabelling, or: the power of lazyness

I also realize Phrases is more akin to your suggestion of PadList (from the excellent Constructing Applicative Functors paper): Using a “singleton” for pure rather than a repeated list like ZipList, and then padding the shorter list to match the longer one.