Each test specified by the :tests input
must have the form (namej termj),
where termj must translate to (fn in1 in2 ...),
as explained in the documentation.
As the :tests input is processed,
the information about each test is stored
into a value of this product type.
This product type stores
namej,
fn,
the list of inputs derived from in1, in2, etc.,
and results of the ground call (fn in1 in2 ...).
The latter list is a singleton for single-valued functions,
while it consists of two or more values for multi-valued functions.