On Tue, Jun 25, 2019 at 4:07 AM John Cowan <xxxxxx@ccil.org> wrote:
That's pretty cool, and I wish I had thought of it for SRFI 158.  However, the word
"scatter" suggests taking things from a single place and putting them into many places.
I think a better name would be gconcatenate.

Indeed, Gauche has gconcatenate.

There can be a few variations to "flatten"-like procedures.  Borrowing Haskell-like type notation,
it's easier to see: 

          (cut apply gappend <>) :: [(Generator a)] -> Generator a
          gconcatenate       :: Generator Generator a -> Generator a
          gflatten           :: Generator [a] -> Generator a