On Sun, Jun 14, 2020 at 3:25 PM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:

What do you think of the names

`just->list' and `right->list' instead? If given a Nothing or a Left, they will return #f as a special case. It is an error to call them on any other value.

just->list would imply that it is an error to call it on a non-Just.  I'll stick with "multitruth" even though it's a rather oddball word.

With the correct specification and implementation of `maybe-unfold' according to the protocol, a Scheme implementation can raise an error if

(generator-unfold GEN maybe-unfold)

is called on a generator of length 2 or more.

That pretty much decides me on this issue.  I do *not* believe that it is an error to unfold into a fixed-size container from a generator that can deliver more values than the fixed size.  In particular, there is nothing wrong with unfolding an infinite generator into a fixed-size container.  The additional values available from the generator are simply never used for anything,

As for super-generators, they don't satisfy the generator protocol (which is specifically defined, unlike the unfold protocol), so I don't care how well or badly they work with generator-unfold.

John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Eric Raymond is the Margaret Mead of the Open Source movement.
          --Bruce Perens, a long time ago