#include<iostream.h>
#include<LINK/basic/Set.h>	// includes MSet.h
#include<LINK/basic/Sequence.h>

main()
{
	MSet<int> mset1;
	Set<int> set;
	Sequence<int> seq1;

	for (int i=0; i<3; i++) {
		mset1.insert(i);
		mset1.insert(i);
		seq1.insert(2*i);
		seq1.insert(2*i);
	}
	mset1 ^seq1;
	cout << "MSet receives return value" << endl;
	cout << mset1 << " + " <<seq1 <<" = " << mset1+seq1 << endl;
	cout <<seq1  << " + " << mset1<<" = " <<seq1+mset1 << endl;
	cout << mset1 << " ^ " <<seq1 <<" = " << (mset1^seq1) << endl;
	cout << seq1 << " ^ " << mset1<<" = " << (seq1^mset1) << endl;
	cout << mset1 << " - " <<seq1 <<" = " << mset1-seq1 << endl;
	cout << seq1 << " - " << mset1<<" = " <<seq1-mset1 << endl;
	cout << "Set receives return value" << endl;
	cout << mset1 << " + " <<seq1 <<" = " << (set=mset1+seq1) << endl;
	cout << mset1 << " ^ " <<seq1 <<" = " << (set=(mset1^seq1)) << endl;
	cout << mset1 << " - " <<seq1 <<" = " << (set=mset1-seq1) << endl;
}
