public long overlap(Interval interval) {
        long millis = 0;

        for (Interval i : this) {
            Interval match = interval.overlap(i);

            if (match != null && match.toDurationMillis() > 0) {
                millis += match.toDurationMillis();
            }
        }
        return millis;
    }