Concise reference manual for the Series macro package
Richard C. Waters · ACM SIGPLAN Lisp Pointers · 1989
Series expressions are transformed into loops by pipelining them---the computation is converted from a form where entire series are computed one after the other to a form where the series are incrementally computed in parallel. In the resulting loop, each individual element is computed just once, used, and then discarded before the next element is computed. For this pipelining to be possible, four restrictions have to be satisfied. Before looking at these restrictions, it is useful to consider a related issue.