fix multiple values in for

- all for tests passing except 1 ~for* (and buggy in-producer tests)
- ~for* with #:when still broken
- switch for tests to use ~lambda and ~define as well