Traits vs. Packages in Scala
===

After watching [Martin's keynote on Reflection and Compilers][1] I can't seem to get this crazy question out of my head. Martin talks among other things about the "(Wedding) Cake Pattern", where traits play the central part. I'm wondering, why in the world do we need packages when we already have traits? Is there anything a `package` can do, what a `trait` (at least theoretically) cannot?

I'm not talking about the current implementation, I'm just trying to imagine what programming would be like if we replace packages with traits. In my head it would be like this:

 - one keyword less (`package` is unneeded)
 - no need for `package object`s

To summarize all my questions:

 1. Is it theoretically possible to remove packages from the language and use traits instead.
 2. What other benefits would we gain from this change? (I was thinking about first class packages and first class imports, but mixin composition is a compile time thing, although the super calls are dynamically bound)
 3. Is Java/JVM compatibility the only thing, which would stand in the way?

  [1]: http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Reflection-and-Compilers