in algebird-core/src/main/scala/com/twitter/algebird/Interval.scala [242:256]
override def contains(t: T)(implicit ordering: Ordering[T]): Boolean =
ordering.lt(lower, t)
override def intersect(that: Interval[T])(implicit ordering: Ordering[T]): Interval[T] = that match {
case Universe() => this
case Empty() => that
case ub @ InclusiveUpper(_) =>
if (intersects(ub)) Intersection(this, ub) else Empty()
case ub @ ExclusiveUpper(_) =>
if (intersects(ub)) Intersection(this, ub) else Empty()
case InclusiveLower(thatlb) =>
if (ordering.gteq(lower, thatlb)) this else that
case ExclusiveLower(thatlb) =>
if (ordering.gteq(lower, thatlb)) this else that
case Intersection(thatL, thatU) => (this && thatL) && thatU
}