\begin{flushleft}
\begin{minipage}[t]{\textwidth}
\hrulefill

\vspace*{-5mm}

\begin{verbatim}
#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;
}
\end{verbatim}

\vspace*{-7mm}

\hrulefill

\vspace*{-5mm}

\begin{verbatim} 
MSet receives return value
{0 0 1 1 2 2} + <4 4 2 2 0 0> = {0 0 0 0 1 1 2 2 2 2 4 4}
<4 4 2 2 0 0> + {0 0 1 1 2 2} = {0 0 0 0 1 1 2 2 2 2 4 4}
{0 0 1 1 2 2} ^ <4 4 2 2 0 0> = {0 0 2 2}
<4 4 2 2 0 0> ^ {0 0 1 1 2 2} = {0 0 2 2}
{0 0 1 1 2 2} - <4 4 2 2 0 0> = {1 1}
<4 4 2 2 0 0> - {0 0 1 1 2 2} = {4 4}
Set receives return value
{0 0 1 1 2 2} + <4 4 2 2 0 0> = {0 1 2 4}
{0 0 1 1 2 2} ^ <4 4 2 2 0 0> = {0 2}
{0 0 1 1 2 2} - <4 4 2 2 0 0> = {1}
\end{verbatim}

\vspace*{-6mm}

\hrulefill
\end{minipage}
\end{flushleft}
