Il est tout simplement impossible de faire celà : les dépendances croisées entre unités de compilation sont interdites en Caml.

Il n'y a qu'une seule solution permettant de ne pas casser ton code...