code: public Constraint<SVar<T>,Set<T>> rewrite(UnionFind<SVar<T>> uf) {
  	SVar<T> vIn_p   = uf.find(vIn);
  	SVar<T> vDest_p = uf.find(vDest);	
  	return new CtDiffConstraint<T>(vIn_p, ctSet, vDest_p);
      }
docs: We implemented {@link #rewrite}, {@link #equals}, and {@link
  #hashCode}, such that constraints that are identical after
  variable unification are not duplicated needlessly.