@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
  default R is(Optional<? extends V> optional) {
    Objects.requireNonNull(optional, "optional");
    return optional.map(this::is).orElseGet(this::isAbsent);
  }
Match current attribute given an optional parameter. If optional is
empty, matching is equivalent to {@link #isAbsent()} otherwise standard
{@link #is(Object)} matching is used.

@param optional argument to match with
@throws NullPointerException if argument is null
criteria/common/src/org/immutables/criteria/matcher/OptionalValueMatcher.java