pub fn inspect<F>(&self, func: F) -> Collection<G, D, R>
    where F: FnMut(&(D, G::Timestamp, R))+'static {
        self.inner
            .inspect(func)
            .as_collection()
    }
Applies a supplied function to each update.

This method is most commonly used to report information back to the user, often for debugging purposes.
Any function can be used here, but be warned that the incremental nature of differential dataflow does
not guarantee that it will be called as many times as you might expect.

The `(data, time, diff)` triples indicate a change `diff` to the frequency of `data` which takes effect
at the logical time `time`. When times are totally ordered (for example, `usize`), these updates reflect
the changes along the sequence of collections. For partially ordered times, the mathematics are more
interesting and less intuitive, unfortunately.

# Examples

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

::timely::example(|scope| {
scope.new_collection_from(1 .. 10).1
.map_in_place(|x| *x *= 2)
.filter(|x| x % 2 == 1)
.inspect(|x| println!("error: {:?}", x));
});
```
differential-dataflow/src/collection.rs