code: @SuppressWarnings("unchecked")
      public static <T> Optional<T> or(final Optional<T> a, final Optional<? extends T> b) {
          return a.isPresent() ? a : (Optional<T>) b;
      }
docs: Return the first optional to be defined.
  
  @param a The first
  @param b The second
  @param <T> The type
  @return a or b or empty