docs: @SuppressWarnings("RedundantTypeArguments")
      @Override
      public final <B> Maybe<B> flatMap(Function<? super A, ? extends Monad<B, Maybe<?>>> f) {
          return match(constantly(nothing()), f.andThen(Monad<B, Maybe<?>>::coerce));
      }