Module Type Intf1.
Parameter T : Type.
Inductive a := A.
End Intf1.

Module Impl1 <: Intf1.
Definition T := unit.
Inductive a := A.
End Impl1.

Module Type Intf2
  (Impl1 : Intf1).
Parameter x : Impl1.A=Impl1.A -> Impl1.T.
End Intf2.

Module Type Intf3
  (Impl1 : Intf1)
  (Impl2 : Intf2(Impl1)).
End Intf3.

Fail Module Toto
  (Impl1' : Intf1)
  (Impl2 : Intf2(Impl1'))
  (Impl3 : Intf3(Impl1)(Impl2)).
(* A UserError is expected here, not an uncaught Not_found *)

(* NB : the Inductive above and the A=A weren't in the initial test,
   they are here only to force an access to the environment
   (cf [Printer.qualid_of_global]) and check that this env is ok. *)