let* is a good example, which exists at the global scope. The "*" may
not be the best choice, but it better conveys (while definitely not
optimally) the meaning than the suffix "multitruth".
I'm going with `list-truth`. Using "truth" conveys meaning in a way that "*" doesn't.
the unfold thing
I'm going with this wording:
If stop? returns true on seeds, a Nothing / a Left of seeds is returned. Otherwise, successor is applied to seeds. If stop? returns false on the results, it is an error. But if the second call to stop? returns true, the results of mapper are wrapped in a Just/Right and returned.
So this requires stop? to be called twice.
Could you add `either->truth' and `either->multitruth' and `truth->either' and `multitruth->either' as well?
Done. There are now maybe and either pairs for all the protocols except `two-values`.
The name `generator->maybe' is misleading, I think. I would suspect that it takes a generator and returns a maybe. But it takes a value produced by a generator. The same holds for `maybe->generator'. For completeness, add a similar pair of procedures for Eithers.
Changed to `generation`, and pushed to the johnwcowan/srfi-189 repo.