@Harmonizr кстати чисто технический вопрос - эту штуку вообще можно выставить наружу так, чтобы и оптимально было и за тебя апи полностью не имплементить?
Ну, вроде как ты тут оптимизируешь всё, а для этого нужно и лямбду с трансформацией/фильтрацией/whatever инлайнить.
А если инлайнить, то это скорее функция, а не конструктор.
А если функция, то и назвать стоит по аналогии с Iterable/Sequence API?