In what sense do you think that potential problems arise?

When code is only tested one one implementation, which deterministically returns e.g. the last value.

An expression like "(set! <identifier> <expression>)" could, in
principle, return the value, which is assigned to the identifier.

Common Lisp's setf and setq do that, per the spec.

From a theoretical point of view, the only convincing stricter
semantics would be to return no values (as per "(values)").

(values) would be a decent choice. (Optimizers can omit the return value where it's not used, so there ought not to be a performance penalty for specifying a value.)

More generally, RnRS has a bunch of places where the return value is undefined. So perhaps a universal convention for what to do about undefined returns would be more productive than addressing the problem in only one SRFI.

Reply via email to