though, I could think " filter" differently, it is a fold that adding a boolean to the original vector can be lazily when you consume the vec, you through those length information away and process one by one