This work was motivated, as the authors state in the acknowledgments, by applications to the implementation of continuations in a functional programming language. The authors study the efficient implementation of a set of procedures pop, catenate, first for manipulating lists (stacks). They provide the first nontrivial solution for a fully persistent data structure that supports an operation catenate to concatenate two versions of the structure corresponding to potentially different sequences of updates.
The paper begins with a brief overview of the concepts of ephemeral and persistent data structures, followed by a discussion of simple solutions. Then it proceeds with more advanced solutions, which are its major results. The first solution is based on the increasing subtrees method, and another is based on the finger tree method. The latter allows a popping operation to be performed in a constant time and space, and concatenation on two lists with a total length n in O ( loglog n ) time and space. The authors admit that the machinery used to achieve these bounds makes the method not very practical; as an alternative, they list simpler and more practical approaches.