pub fn flat_map<I, L>(&self, mut logic: L) -> Collection<G, I::Item, R>
        where G::Timestamp: Clone,
              I: IntoIterator,
              I::Item: Data,
              L: FnMut(D) -> I + 'static {
        self.inner
            .flat_map(move |(data, time, delta)| logic(data).into_iter().map(move |x| (x, time.clone(), delta.clone())))
            .as_collection()
    }
Creates a new collection by applying the supplied function to each input element and accumulating the results.

This method extracts an iterator from each input element, and extracts the full contents of the iterator. Be
warned that if the iterators produce substantial amounts of data, they are currently fully drained before
attempting to consolidate the results.

# Examples

```
use differential_dataflow::input::Input;

::timely::example(|scope| {
scope.new_collection_from(1 .. 10).1
.flat_map(|x| 0 .. x);
});
```
differential-dataflow/src/collection.rs