class RangeLongBlock implements Comparable<RangeLongBlock>, Iterable<Long> {

    @Override
    public int compareTo(RangeLongBlock o)
    {
        if (myStartValue == o.myStartValue && myEndValue == o.myEndValue)
            // Equality
        {
            return 0;
        }
        else if (myEndValue < o.myStartValue || o.myEndValue < myStartValue)
            // Does not overlap
        {
            return myEndValue < o.myStartValue ? -1 : 1;
        }
        else
            // Overlaps
        {
            return myStartValue < o.myStartValue ? -1 : 1;
        }
    }

    public  RangeLongBlock(long value);
    public  RangeLongBlock(long startValue, long endValue);
    public  RangeLongBlock(RangeLongBlock other);

}