segments and empty in one step, so an append landing mid-consume is not lost the way a segments() + clear pair loses it.
segments()