The key idea is to derive the number of return values from the number of variables used on the LHS of an assignment. This should enable TCs such as
{[i] -> print (i) | [i] < [10]};
as well as
a, b = {[i] -> foo (i) | [i] < [10]};
where foo returns two values. While it might seem to be artificial to require an explicit assignment, this seems to be an acceptable choice since SaC currently does not allow functions that return more than one array to occur anywhere else either.