How does it interact with overloading? I would suggest to prohibit overloading if any of the alternatives is untyped. A similar check currently exists for defaults:

```scala
scala> trait A { def foo(a: Int = 0) {} }
defined trait A

scala> trait B { def foo(a: Int = 0, b: Int = 0) {} }
defined trait B

scala> new A with B
<console>:10: error: in anonymous class $anon, multiple overloaded alternatives of method foo define default arguments.
The members with defaults are defined in trait B and trait A.
              new A with B
                  ^
```