Welcome to the conversation :) > > If I have a list of ports `l` and want to read the contents of all of > > them, `(map (cute read-string #f <>) l)` is one "obvious" way to go. > > Another probably better example is #f, although not related to > > generators & whatnot, which is commonly used as the "null value". Except > > when it is a valid input or output value. And that's why `maybe` from > > SRFI 189 is useful. > > siiky In another thread the Maybe approach was also mentioned. The problem I have with eof-object in generator is that eof-object is not a disjoint type for a dijoint behavior such as described in null object pattern [0]. In a way that is similar to JavaScript's `undefined` that shows up in code or errors, without giving information about what is the actual context or problem. [0] https://en.wikipedia.org/wiki/Null_object_pattern FWIW, and AFAIU that is an idea that is strong in Kernel, but I can't quote precisely the R-1RK report at this time. At least with the functional approach, the user is free to use whatever sentinel they decided is the best fit.