Hello everybody, Thanks for your help. I now have 2 solutions that should work (it will take a couple of days to change my **real** project to see if it works). However, I still did not understand this statement of Jeremy Yallop: >> module type Abc = >> functor (M:Simple) -> >> sig >> val x : M.t >> end >> > You're trying to treat Abc as a functor from signatures to signatures > (i.e. as a parameterised signature). In fact, it's something quite > different: it's the *type* of a functor from structures to structures. > If I understand well, what I try to do is impossible for some deep theoretical reason. Can someone explain this to me, or point me to a relevant paper explaining it? Yours, Jacky