Describe the compilation lifecycle of a Rust program. What are the performance implications of monomorphization?