public Optional<Range<T>> intersect(T t1, T t2) {
        return intersect(new Range<>(t1, t2));
    }
public Optional < Range < T > > intersect ( T t1 , T t2 ) { return intersect ( new Range < > ( t1 , t2 ) ) ; }
The intersection of two ranges.
<p>
<code><pre>
// (2, 3)
range(1, 3).intersect(2, 4)

// none
range(1, 3).intersect(5, 8)
</pre></code>