If function f1 is unused, and f2 is only called from f1, Rust complains that both f1 and f2 are unused. I find this confusing: it's useful to know that I can remove both functions, but removing f2 alone gives a compile error. Not sure what the best tradeoff is though.