main function can be a inner function. for example ``` fn foo() { fn main() { io::println("i am the inner main"); foo(); } io::println("i am a outer function"); } ``` I wonder if it's intended. If not, main should be always at the top crate level.