I think `Option[O]` output is an implementation detail, should just be `O`. A subsequent stage in the pipeline can always listen for the last element using the `terminated` combinator.