docs: @Override
      public <B> IdentityT<M, B> flatMap(Function<? super A, ? extends Monad<B, MonadT<M, Identity<?>, ?>>> f) {
          return identityT(mia.flatMap(identityA -> f.apply(identityA.runIdentity()).<IdentityT<M, B>>coerce().run()));
      }