Comme on n'a pas mémorisé la structure intermédiaire des polynômes à une variable, on n'a plus accès à ses fonctions de construction.

Il faudrait écrire par exemple:
module Make2 (A : Poly.ANNEAU) (X : Poly.VAR) (Y : Poly.VAR) : Poly.POLYNOME = struct module PX = Poly.Make (A) (X) include Poly.Make (PX) (Y) end
Le problème avec cette construction est que le type des polynômes PX utilisés comme coefficients est abstrait et on ne peut plus l'utiliser. Il faut donc créer les polynômes en XY en deux étapes et donner un accès à la structure intermédiaire PX.