pub fn set(self, result: &Collection<G, D, R, C>) -> Collection<G, D, R, C> {
        let mut in_result = result.clone();
        if let Some(source) = &self.source {
            in_result = in_result.concat(&source.negate());
        }
        self.set_concat(&in_result)
    }
Set the definition of the `Variable` to a collection.

This method binds the `Variable` to be equal to the supplied collection,
which may be recursively defined in terms of the variable itself.
differential-dataflow/src/operators/iterate.rs