rich_iterator prototype