<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2009/01/e0c885a82a80905f27ea953e549edbf7"
  from="Jacques Carette &lt;carette@m...&gt;"
  author="Jacques Carette"
  date="2009-01-27T14:48:20"
  subject="Re: [Caml-list] Defining a family of functors"
  prev="2009/01/176083d907711b1c0f7c0efd6b51cc93"
  next="2009/01/6bcb9a4ac2176599c516764078bcdc49"
  prev-in-thread="2009/01/d2c63b2f7626796ec90499b50f2cf5a5"
  next-in-thread="2009/01/8d8e54f793872ffd56af17cf4847374b"
  prev-thread="2009/01/075c78daae5e116a1bb9600fe4622e71"
  next-thread="2009/01/058fceaf7ab816b8e53ee025d7e00cb1"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="Defining a family of functors">
<msg 
  url="2009/01/f7ca13d9cc4ee13a6a08d9db855b9cb7"
  from="Michaël_Grünewald &lt;michaelgrunewald@y...&gt;"
  author="Michaël_Grünewald"
  date="2009-01-26T15:08:38"
  subject="Defining a family of functors">
<msg 
  url="2009/01/3ac0c3210d8125d897f761fbf92e4bd8"
  from="Jacques Carette &lt;carette@m...&gt;"
  author="Jacques Carette"
  date="2009-01-26T15:16:34"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/d2c63b2f7626796ec90499b50f2cf5a5"
  from="Andrej Bauer &lt;andrej.bauer@a...&gt;"
  author="Andrej Bauer"
  date="2009-01-27T14:30:29"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/e0c885a82a80905f27ea953e549edbf7"
  from="Jacques Carette &lt;carette@m...&gt;"
  author="Jacques Carette"
  date="2009-01-27T14:48:20"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/8d8e54f793872ffd56af17cf4847374b"
  from="David Teller &lt;David.Teller@m...&gt;"
  author="David Teller"
  date="2009-01-27T21:12:52"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/1753e428b7e5e27bce761f4376dcfc36"
  from="Nicolas Pouillard &lt;nicolas.pouillard@g...&gt;"
  author="Nicolas Pouillard"
  date="2009-01-28T00:33:36"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/521ae12c093f87e36498da99ae549e1b"
  from="David Teller &lt;David.Teller@m...&gt;"
  author="David Teller"
  date="2009-01-28T21:18:29"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/ce1c7eaeee72626fbebda727986324b6"
  from=""
  author=""
  date="2009-01-29T09:38:48"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/d1e905442fb5ce55cfc4baef864b75cc"
  from="David Allsopp &lt;dra-news@m...&gt;"
  author="David Allsopp"
  date="2009-01-29T10:41:14"
  subject="RE: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/084cca644aebe0a7eee115861cf4acae"
  from="Mauricio Fernandez &lt;mfp@a...&gt;"
  author="Mauricio Fernandez"
  date="2009-01-29T21:15:00"
  subject="Re: [Caml-list] Defining a family of functors">
<msg 
  url="2009/01/05f780a2c38623a81af65fd384bb7637"
  from="Michaël_Grünewald &lt;michaelgrunewald@y...&gt;"
  author="Michaël_Grünewald"
  date="2009-01-30T08:25:30"
  subject="Re: [Caml-list] Defining a family of functors">
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
Andrej Bauer wrote:
&gt; Because of problems like these I sometimes wish I had first-class
&gt; modules. I wonder how different that is from having first-class
&gt; polymorphic records, actually. Perhaps a bit of camlp4 to wrap up
&gt; records in module-like notation would do the trick.
&gt;   
If your modules do not define new types, then the main difference is 
that of name spaces (records pollute the global namespace, modules 
define local namespaces).  However, I could not get far with modules 
that only define new values (functions).

Bottom line: I too very much wish for first-class, higher-order 
modules.  As O'Caml already has open and closed products (viz rows and 
records), open and closed sums (viz polymorphic and 'normal' variants), 
the resulting system could steal back the 'elegant' monicker that has 
drifted towards Haskell.

Jacques

</contents>

</message>

