Obvious duplicates are caught, but after including modules in other modules and renaming modules and whatnot, we need a check for duplicates that happens right after a module loads (possibly even during the load step).
Remember, duplicate aliases are not a problem unless they're used (to make it easier and less obnoxious to mass-import things)
Also, duplicate names in a trait aren't an issue as long as the type signatures coincide (we do need to make a merge step on this when including traits in other traits; right now it technically works, I think, but is awkward; I may make a separate issue about this)
Obvious duplicates are caught, but after including modules in other modules and renaming modules and whatnot, we need a check for duplicates that happens right after a module loads (possibly even during the load step).