Pre-translation step performed by ATJ: replacement of list calls with mv calls.
This is done only in the shallow embedding.
In untranslated terms, calls of mv determine when multiple results are produced. In translated terms, mv is expanded in the same way as list, and thus the information is somewhat lost. However, it can be almost completely recovered with a bit of effort; the `almost' means that in some very unlikely and contrived situations we may regard a translated term that originally (i.e. before being translated) returned a single list value as a term that returns a multiple value instead, but this does not compromise correctness of the generated Java code.
In this pre-translation step,
we replace certain nests of two or more conses
ending in a quoted