This can go wrong if `qual` is not a `Function0`. This case will match any call to a 0-arg `apply` method, and then it will try to use `qual`, which might not be a `Function0`, in a context where a `Function0` is expected.
For example:
```scala
class Foo {
  def apply(): Int = 42
}
object Bar {
  def bar(x: => Int) = ???
  def main(): Unit = {
    val foo = new Foo
    bar(foo.apply()) // <-- boom!
  }
}
```