does it make sense to have a Monad instance of Se...
# arrow-contributors
r
does it make sense to have a Monad instance of Selective like
Copy code
@extension 
interface MonadSelective<F>: Selective<F> {
  
  fun M(): Monad<F>
  
  override fun <A, B> Kind<F, A>.ap(ff: Kind<F, (A) -> B>): Kind<F, B> =
    M().run { this@ap.ap(ff) }

  override fun <A> just(a: A): Kind<F, A> = M().just(a)

  override fun <A, B> Kind<F, Either<A, B>>.select(f: Kind<F, (A) -> B>): Kind<F, B> =
    M().run { this@select.selectM(f) }
}