and felt it's missing.
-- Function: gflatten gen
The argument GEN is a generator that yields lists. This procedure
returns a generator that first calls GEN to obtain a list, then yield
its elements one at a time. Once the list is exhausted, it calls GEN
again and repeat the process.
It is similar to gconcatenate and gappend, but they operate on slightly
different domains. Using Haskellish notation, their types can be described
as follows:
gconcatenate :: Generator Generator a -> Generator a
gflatten :: Generator [a] -> Generator a
(cut apply gappend <>) :: [Generator a] -> Generator a
gappend :: Generator a, Generator a, ... -> Generator a