I loved the Implicit Module presentation, and I'm very happy for ocaml to be moving from a fully dynamic first-class-module existential type model (excluding functors of course) that can't be optimized to one where the compiler is in control and can do significant static analysis. I have a question about the implicit module implementation: Is there any way to combine modules automatically? For example, suppose I have a Show implicit module and an Ord implicit module, and a function receives both, and wants to infer both functionalities for an incoming type so we can run both show and compare on the same type. Does the current model cover such a use-case? If not, is there any idea how to move in this direction? Automatic module fusion perhaps?

Thanks,

Yotam