Any drawbacks to Nil[A]?

In 2.12.4 and 2.13.0-M2, they do conflict in several ways. Given

trait MmmList[+A] {
  def apply(i: Int): A
}

object MmmNil extends MmmList[Nothing] {
  override def apply(i: Int) = ???
  def apply[A]: MmmList[A] = this
}

object Tests {
  def app[A](f: Int => A): A = f(0)

  def supposing[Q](someList: MmmList[Nothing], q: Q)(implicit fromQ: Q => Int) = {
    // doesn't eta-expand with the general form
    val before1 = someList.apply _
    val after1 = MmmNil.apply _
    // ...even if you say which arity you want
    val before2 = someList.apply(_)
    val after2 = MmmNil.apply(_)
    // doesn't eta-expand *in an expected-lambda context*
    val before3 = app(someList.apply)
    val after3 = app(MmmNil.apply)
    // ...even if you say which arity you want. I'm surprised; I thought
    // this would work.
    val before4 = app(someList.apply(_))
    val after4 = app(MmmNil.apply(_))
    // suppresses implicit conversion, which now comes too late
    val before5 = someList(q)
    val after5 = MmmNil(q)
  }
}

All five after variants fail to compile, whereas their before brethren are just fine.

Some improvements to overloads are planned for 2.13 to make collection-strawman practical. As of 2.13.0-M2, however, all five above examples fail in exactly the same way as with 2.12.4. Since these failures are unrelated to the requirements of collection-strawman, there is no motivation to improve matters here.

Whether these conflicts matter is a different question.

This does not work, likely for the same reason adding curried Option#fold as a regular method broke Scalaz’s uncurried form.