2つの相互再帰関数として定義されているとします。末尾呼出は相互末尾再帰呼出です。相互再帰呼出は末尾呼出です。相互再帰呼出もまた末尾呼出です。コンパイラはこれら2つの関数を1つの関数に結合します。そのためそれぞれの本体にある相互末尾再帰呼出を、結合された関数本体の自己末尾呼出に変換できます。これらの呼出はローカルジャンプへとコンパイルされます。相互末尾再帰呼出がローカルジャンプにコンパイルされるかしばしば確認する必要があります。相互再帰的に定義されています。これらの本体におけるこの相互再帰呼出は全て末尾呼出です。コンパイラに指示します。呼び出しによってスタックオーバーフローが起きる危険性があります。組み込みループを相互末尾再帰関数で実装することを可能にします。再帰関数で置換するのに実用上不可欠です。無環境関数とクロージャ。