Avoid construction of intermediate list