caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Qualifying Module Names
@ 2015-06-10 14:16 Kenneth Adam Miller
  2015-06-10 14:35 ` Ben Millwood
  2015-06-10 15:08 ` Oliver Bandel
  0 siblings, 2 replies; 4+ messages in thread
From: Kenneth Adam Miller @ 2015-06-10 14:16 UTC (permalink / raw)
  To: caml users

[-- Attachment #1: Type: text/plain, Size: 416 bytes --]

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).

[-- Attachment #2: Type: text/html, Size: 568 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] Qualifying Module Names
  2015-06-10 14:16 [Caml-list] Qualifying Module Names Kenneth Adam Miller
@ 2015-06-10 14:35 ` Ben Millwood
  2015-06-10 14:41   ` Kenneth Adam Miller
  2015-06-10 15:08 ` Oliver Bandel
  1 sibling, 1 reply; 4+ messages in thread
From: Ben Millwood @ 2015-06-10 14:35 UTC (permalink / raw)
  To: Kenneth Adam Miller; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 730 bytes --]

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).
>

[-- Attachment #2: Type: text/html, Size: 1157 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] Qualifying Module Names
  2015-06-10 14:35 ` Ben Millwood
@ 2015-06-10 14:41   ` Kenneth Adam Miller
  0 siblings, 0 replies; 4+ messages in thread
From: Kenneth Adam Miller @ 2015-06-10 14:41 UTC (permalink / raw)
  To: Ben Millwood; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 1299 bytes --]

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).
>>
>
>

[-- Attachment #2: Type: text/html, Size: 2054 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] Qualifying Module Names
  2015-06-10 14:16 [Caml-list] Qualifying Module Names Kenneth Adam Miller
  2015-06-10 14:35 ` Ben Millwood
@ 2015-06-10 15:08 ` Oliver Bandel
  1 sibling, 0 replies; 4+ messages in thread
From: Oliver Bandel @ 2015-06-10 15:08 UTC (permalink / raw)
  To: caml-list


Zitat von Kenneth Adam Miller <kennethadammiller@gmail.com> (Wed, 10  
Jun 2015 10:16:51 -0400)

> 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?
[...]


A detailed error message would be helpful...

But on first sight it could be, that stuff from

My_module.Submodule

is needed in the compilation unit, in which the "open" and "module"
are located.

Ciao,
    Oliver


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-06-10 15:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-10 14:16 [Caml-list] Qualifying Module Names Kenneth Adam Miller
2015-06-10 14:35 ` Ben Millwood
2015-06-10 14:41   ` Kenneth Adam Miller
2015-06-10 15:08 ` Oliver Bandel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).