zayac/EqCode — comment on commit 69d4e5b432afb35800cd03216eb43cc641fbd0c9
File: docs/misc/stream-operators.txt line 151
By ashinkarov:

Ну вот то, что ты написал -- точно лажа. :) У этих потоков есть зависимость по индексам, и я не могу себе представить f, которая покроет даже тривиальный случай. Далее, на мой взгляд, то, что ты написал никак не может быть потоковой функцией, так как ты хранишь состояние не в потоке а в функции. Как это можно будет передать дальше. Типа представь:

a = merge (b, c);
return a;

если поток собран исключительно конструкторами, то ты получаешь все необходимое статическое знание, и вызов функции можешь вообще выкинуть. Я в общем-то именно поэтому хочу понять можно ли выразить все примитивные операции над потоками, исключительно с помощью конструирования новых потоков. Тогда весь анализ станет совершенно прозрачным.

Более того, лично я глядя на эту функцию понимаю, что в зависимости от предиката нам вернется либо поток a целиком, либо поток b -- никакой склейки.