code: public static <T> Range<T> from(Boundary<T> lower, Boundary<T> upper) {
          return new Range<T>(lower, upper);
      }
docs: Create a new range from {@code lower} and {@code upper} boundaries.
  
  @param lower lower boundary, must not be {@literal null}.
  @param upper upper boundary, must not be {@literal null}.
  @param <T> value type.
  @return new {@link Range}