in dispenso/detail/pipeline_impl.h [341:353]
auto makePipesHelper(
ConcurrentTaskSet& tasks,
Stage0&& sCur,
Stage1&& sNext,
Stages&&... sFollowing) {
using Stage0Result = ResultOf<Stage0, typename OptionalStrippedTraits<InputType>::Type>;
auto pipe = makePipesHelper<Stage0Result>(
tasks, std::forward<Stage1>(sNext), std::forward<Stages>(sFollowing)...);
constexpr StageClass kSc = TransformTraits<Stage0Result>::kStageClass;
return Pipe<kSc, Stage0, decltype(pipe)>(tasks, std::forward<Stage0>(sCur), std::move(pipe));
}