This allows ControlFlow<BreakType> which is much more ergonomic for common iterator combinator use cases.