Interestingly this does NOT return ```E::value_type```, but is seems weird for an iterator isn't it?