<div dir="ltr">It sounds to me like Alain and Yaron's model of namespaces is one where namespaces are (a form of) restricted modules, able to declare module aliases (the core namespace behavior) and module includes ("auto-open").  At the risk of complicating things, I suggest that namespaces also be able to do namespace includes, which would basically be namespace dependencies.  As described in the latest Core release thread, it is expected to have Ucore a subset of Core.Stable, which is itself a subset of Core.Std.  To eliminate the obvious repetition of every declaration in Ucore 3 times, Core.Stable would simply include UCore.<div>
<br></div><div>I'm not proposing the fourth corner of the square, declaring namespace aliases, but adding this would make the proposal fully hierarchical in what seems to me a natural way.</div><div><br></div><div style>
E.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 1, 2013 at 9:34 AM, Alain Frisch <span dir="ltr"><<a href="mailto:alain.frisch@lexifi.com" target="_blank">alain.frisch@lexifi.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 03/01/2013 02:38 PM, Didier Remy wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
But I think it would help to understand each other if you accepted to view<br>
your proposal as a restriction of the hierarchical model, as I think it is<br>
one---or tells us why it does not fit in this model.<br>
</blockquote>
<br></div>
Short summary: I don't think it fits in this model, but I'd love to be proven wrong.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Here is my attempt:<br>
<br>
It is rather a 2-level model than a flat one, where namespace filenames are<br>
the first level and the content of namespaces are the second level.<br>
</blockquote>
<br></div>
The content of a namespace files is a mapping between references and compilation units.  If one wants to see this as a tree, one would draw something like:<br>
<br>
<br>
 Core<br>
  |<br>
  |--->  (List => Core_list)<br>
  |--->  (String => Core_string)<br>
<br>
But I don't really see the value of considering this as a tree: there can only be two levels and they are of a very different nature (nodes of the first level are names; nodes of the second level are pairs of names).  To be noted: the same reference name (List, String) can be appear in several leaves, of course, but so do unit names (Core_list, Core_string).  You could have for instance:<br>

<br>
 Core<br>
  |<br>
  |--->  (List => Core_list)<br>
  |--->  (String => Core_string)<br>
  |--->  (Unix => Core_unix)<br>
<br>
 UCore<br>
  |<br>
  |--->  (List => Core_list)<br>
  |--->  (String => Core_string)<br>
<br>
<br>
How does this fit into the hierarchical model?<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
Alain</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
Platform mailing list<br>
<a href="mailto:Platform@lists.ocaml.org" target="_blank">Platform@lists.ocaml.org</a><br>
<a href="http://lists.ocaml.org/listinfo/platform" target="_blank">http://lists.ocaml.org/<u></u>listinfo/platform</a><br>
</div></div></blockquote></div><br></div>