public int compareTo( Variant other )
	{
		if ( this.startIndex < other.startIndex )
			return -1;
		else if ( this.startIndex > other.startIndex )
			return 1;
		else if ( this.startOffset < other.startOffset )
			return -1;
		else if ( this.startOffset > other.startOffset )
			return 1;
		else if ( this.length < other.length )
			return -1;
		else if ( this.length > other.length )
			return 1;
		else
		{
			String thisV = versions.toString();
			String thatV = other.versions.toString();
			int res = thisV.compareTo( thatV );
			if ( res != 0 )
				return res;
			else
			{
				String thisD = new String( data );
				String thatD = new String( other.data );
			    return thisD.compareTo( thatD );
			}
		}
	}