> which yields the error: Error: redefinition of 'iter'; previous declaration > here: ...
where did the name 'iter' come from ? The other solution: if a template gives back an 'it' , the 'it' is in scope then as a value (it's a closure) and indeed, a redefinition is not possible.