Now, in terms of "compile time spent on foo" -- how much of it is spent during compile of crateA, and how much of it is spent during crateB?
My current intuition is that for generic functions, almost no work is done during compile time for crateA besides type checking, and almost all the work is done during compilation of crateB.
have a "shell crate" that imports all the small crates
However, based on the above, if the functions we put into the small crates are GENERIC functions ... then there's little/no compile time benefit right?
When you compile crate A, the compiler checks types and lifetime based on the functions generic bound, and store into .rlib as a serialized AST. So no machine code is generated in this time.