The list "s" in the data structure has two purposes. This list serves as a counter for formula_28, indeed, formula_29 if and only if "s" is the empty list. This counter allows us to ensure that the rear is never longer than the front list. Furthermore, using "s", which is a tail of "f", forces the computation of a part of the (lazy) list "f" during each "tail" and "insert" operation. Therefore, when formula_29, the list "f" is totally forced. If it was not the case, the internal representation of "f" could be some append of append of... of append, and forcing would not be a constant time operation anymore.