Enlighten me. And while you're at it, explain why this is better than, say, Rust's module system, where we don't need separate header files.