They have more similarities than your message suggests I believe. And it is probably worth exploring that. As far as I can see a facet/modulet has less stuff than a package and possibly a different story vis a vis files in the filesystem. <br>
<br>Robby<br><br>On Wednesday, July 27, 2011, Jay McCarthy &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt; wrote:<br>&gt; I don&#39;t see them as overlapping, but you may understand them different<br>
&gt; than I do.<br>&gt;<br>&gt; The way I see modules/facets is that &#39;racket/list.rkt&#39; will have a<br>&gt; &#39;default&#39; facet and a &#39;testing&#39; facet and a &#39;documentation&#39; facet, so<br>&gt; that each use can be syntactically close but separately loadable.<br>
&gt;<br>&gt; The way I see packages is that they allow indirection of module paths,<br>&gt; so that inside &#39;a.rkt&#39;, &#39;racket/list&#39; can refer to something other<br>&gt; than the usual thing because of what package it is inside. Packages<br>
&gt; also allow module privacy in a way we don&#39;t provide now, because some<br>&gt; modules may not be provided from the package, even though they are<br>&gt; inside it.<br>&gt;<br>&gt; So... do you think those two understandings overlap? Or do you<br>
&gt; understand them differently?<br>&gt;<br>&gt; Jay<br>&gt;<br>&gt; On Wed, Jul 27, 2011 at 7:52 AM, Robby Findler<br>&gt; &lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt; wrote:<br>&gt;&gt; Bullet point 2 seems like it may overlap (in a practical, &quot;what do I<br>
&gt;&gt; use today&quot; sort of a way) with Matthew&#39;s modulelet construct. Both<br>&gt;&gt; group modules together, both provide independently loadable things.<br>&gt;&gt;<br>&gt;&gt; Do we really want/need both of these?<br>
&gt;&gt;<br>&gt;&gt; Robby<br>&gt;&gt;<br>&gt;&gt; On Tue, Jul 26, 2011 at 5:49 PM, Jay McCarthy &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt; wrote:<br>&gt;&gt;&gt; Eli and I had a very useful conversation last night and we realized<br>
&gt;&gt;&gt; that a lot of the ideal package system we are imagining is within our<br>&gt;&gt;&gt; reach very quickly. Today I made a demonstration of our ideas:<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; <a href="https://github.com/jeapostrophe/exp/tree/master/pkgs">https://github.com/jeapostrophe/exp/tree/master/pkgs</a><br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; There&#39;s a README there. Once you read it,<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Run use/program.rkt<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Then edit use/pkg-in.rkt and change the &quot;safe&quot; to &quot;unsafe&quot;<br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; You&#39;ll see that it changes the meaning of racket/listy module<br>&gt;&gt;&gt; reference in use/program.rkt<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I haven&#39;t implemented the module algebra, but it should be clear from<br>
&gt;&gt;&gt; looking at the macro implementations that the existing identifier<br>&gt;&gt;&gt; algebra in require/provide will work transparently.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Jay<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>&gt;&gt;&gt; Assistant Professor / Brigham Young University<br>&gt;&gt;&gt; <a href="http://faculty.cs.byu.edu/~jay">http://faculty.cs.byu.edu/~jay</a><br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; &quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>&gt;&gt;&gt; _________________________________________________<br>&gt;&gt;&gt;  For list-related administrative tasks:<br>&gt;&gt;&gt;  <a href="http://lists.racket-lang.org/listinfo/dev">http://lists.racket-lang.org/listinfo/dev</a><br>
&gt;&gt;&gt;<br>&gt;&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>&gt; Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>&gt; Assistant Professor / Brigham Young University<br>&gt; <a href="http://faculty.cs.byu.edu/~jay">http://faculty.cs.byu.edu/~jay</a><br>
&gt;<br>&gt; &quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>&gt;<br>&gt; _________________________________________________<br>&gt;  For list-related administrative tasks:<br>&gt;  <a href="http://lists.racket-lang.org/listinfo/dev">http://lists.racket-lang.org/listinfo/dev</a>