## minimized code ```Scala trait Foo[A]; trait Bar def qux1[A](implicit A: Foo[A], B: Bar = new Bar {}): Bar = B def qux2[A: Foo](implicit B: Bar = new Bar {}): Bar = B ``` ## Compilation output `qux1` compiles as expected but `qux2` does not: ```scala 1 |def qux2[A: Foo](implicit B: Bar = new Bar {}): Bar = B | ^ | Found: Object with Bar {...} | Required: Foo[(?)] ``` ## expectation It seems like both should compile, as they do on Scala 2. Note that the same thing happens if you replace `implicit` with `using`.