One type of higher-order enumeration is filtering,
where one enumerator takes the output of another
enumerator and removes some elements.
In a producer-driven enumerator, you would implement filtering
by substituting a new callback function that responds to callbacks
on behalf of the client for items that should be filtered,
and forwarding ...