next() now returns a yield_ptr_type, not a yield_type*