Je viens de regarder et il me semble que la partie qui créée une boucle sans fin est la comparaison entre deux contextes `if nctx = nctx' then` dans le code de `lexp_decls_1` branche Pmcall.
Ah. bonne idée. Il faut utiliser le == à la place.
En effet, ça va mieux maintenant. Donc, c'était probablement pas une inf-loop, juste une preuve que le `=` structurel de OCaml est pas efficace (que je sache, les ctx n'ont pas de cycles, par contre avec les double liens des Myers lists, si `=` ne prête pas attention au partage il prend un temps O(2^N) pour comparer des Myers listes de longueur O(N)).
Stefan
PS: C'est probablement plus du côté de O(1.5^N), mais le problème reste le même.