Creates a task splicing a feed of feeds into a single feed.
Nested feeds are consumed one at a time, each fully drained before the next is opened, so items are emitted in source order, those of every nested feed kept together and in their own order; a nested feed contributing nothing simply drops out. Nothing is drawn from a nested feed until its turn comes, so one deferring retrieval until consumption is left untouched until then.
The type of items carried by the nested feeds
A task yielding the items of every nested feed in source order
Creates a task splicing the feeds another task reports into a single feed.
Hands the feed drawn from to task and splices the feeds it reports as the overload taking no argument does, so
that an item mapped to a feed of its own is expanded in place into the items of that feed.
task and the feeds it reports do; an infinite one starves the feeds behind it, never opened.task holds.task carries across the items
it draws.task draws from the whole feed, so state it initialises on invocation decides on every item, as it would
anywhere else in the pipe. Where a source already carries feeds and a task is to be scoped to each of them,
apply it within map(): flat(map(feed => feed(sort()))) orders every nested feed on its own.
The type of items drawn from the feed
The type of items carried by the feeds task reports
A task yielding the items of every feed task reports, in source order
Creates a task splicing nested feeds into a single feed, with or without a task opening the feeds to splice.