What is the relationship between a module and a crate?
• A crate is a top-level compilation unit that corresponds to a single loadable object. • A module is a (possibly nested) unit of name-management inside a crate. • A crate contains an implicit, un-named top-level module. • Recursive definitions can span modules, but not crates. • Crates do not have global names, only a set of non-unique metadata tags. • There is no global inter-crate namespace; all name management occurs within a crate. • Using another crate binds the root of its namespace into the user’s namespace.