{pull 'primes'} ... {/pull} iterates a sequence stored earlier by {sequence} with push='primes' (or name='primes'). The current value is {$sequence}, as in any sequence run. Without a name it takes the sequence that was pushed last. The prefix spelling {pull:primes} ... {/pull:primes} names the store in the tag itself, and a store can even be iterated by its own name: {primes}.

Everything a sequence run can do to its values works here, on the stored values: actions (reverse, sort, sum, first=3, append='other', ...) and plays (keep, even, flag, prime, make, add=4). The store itself is left as it is, except by the actions that take values out of it: shift=2 shows the first two and removes them from the store, pop=2 the last two. To rewrite a store, use {resume}.

Under the strict check pulling a store that was never pushed is an error - there is no stored sequence named 'x', or nothing has been pushed for {pull} without a name. A store is a value of the request: it lives as long as the request does.