I wrote "would compile" but I was actually testing it out in utop, from which I can #require my package that defines those modules. *In utop specifically*, the first works, but the second does not. I am about to be compiling my code to test to be sure (I'm pretty sure what happens in utop corresponds closely to the compilation), but between compiles I have to recompile, reinstall my library, so my iterations are slow. Let you know in a few minutes.

On Wed, Jun 10, 2015 at 10:35 AM, Ben Millwood <bmillwood@janestreet.com> wrote:
Your example superficially looks like it should work. Does the first example also work if you drop the open statement? Consider the possibility that you are actually picking up Foo from somewhere else.

On 10 June 2015 at 15:16, Kenneth Adam Miller <kennethadammiller@gmail.com> wrote:
I ran into a quirk today-

I noticed that if I first do:

open My_module.Submodule
module Blah = Foo.Bar

That my code would compile, but doing this:

module Blah = My_module.Submodule.Foo.Bar

will *not*. Why is that? Is there any way to fully qualify a module name in the latter manner (the code of the latter manner was fully machine generated, and I would like the machine generated code not have to be edited).