I would agree, but have a look at this:<p><a href="http:&#x2F;&#x2F;reactivex.io&#x2F;documentation&#x2F;operators&#x2F;flatmap.html" rel="nofollow">http:&#x2F;&#x2F;reactivex.io&#x2F;documentation&#x2F;operators&#x2F;flatmap.html</a><p>Granted, this refers to a higher level abstraction on a sequence of realtime events, but as we delve more into green threads and lazy evaluation, these kinds of solutions will become more common.<p>I really don&#x27;t believe that there is no obvious way to guarantee the ordering of a given flatten command without looking into its implementation. Of course, I&#x27;m admittedly partial to Python&#x27;s solution - use an explicit list comprehension:<p><pre><code>    &gt;&gt;&gt; g = lambda i: (i, -i)
    &gt;&gt;&gt; [x for y in [1, 2, 3] for x in g(y)]
    [1, -1, 2, -2, 3, -3]</code></pre>