In the following code: ```rust async fn rec_1() { rec_2().await; } async fn rec_2() { rec_1().await; } ``` This gives an error when it is a part of a `lib` crate. However, as a part of a `bin` crate, it compiles. Here's an [erroneously compiling playground link](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&code=async%20fn%20rec_1()%20%7B%0A%20%20%20%20rec_2().await%3B%0A%7D%0A%0Aasync%20fn%20rec_2()%20%7B%0A%20%20%20%20rec_1().await%3B%0A%7D%0A%0Afn%20main()%20%7B%7D) and a [correctly erroring playground link](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&code=async%20fn%20rec_1()%20%7B%0A%20%20%20%20rec_2().await%3B%0A%7D%0A%0Aasync%20fn%20rec_2()%20%7B%0A%20%20%20%20rec_1().await%3B%0A%7D)