code: @Override
      public <B> MaybeT<M, B> flatMap(Function<? super A, ? extends Monad<B, MonadT<M, Maybe<?>, ?>>> f) {
          return maybeT(mma.flatMap(ma -> ma
                  .match(constantly(mma.pure(nothing())),
                         a -> f.apply(a).<MaybeT<M, B>>coerce().run())));
      }
docs: {@inheritDoc}