<?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/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"
  prev="2009/01/8d8e54f793872ffd56af17cf4847374b"
  next="2009/01/95edc08cfde6a09340c5e2f438aca25e"
  prev-in-thread="2009/01/8d8e54f793872ffd56af17cf4847374b"
  next-in-thread="2009/01/521ae12c093f87e36498da99ae549e1b"
  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>
Excerpts from David Teller's message of Tue Jan 27 22:12:59 +0100 2009:
&gt; I'd like that, too. I may be wrong but I have the impression that most
&gt; of this can already be done with the current type system of OCaml.
&gt; 
&gt; Unless I'm mistaken, for first-class modules, you essentially need
&gt; * extendable records (aka objects, good thing we already have them)

&gt; * existential types (which may be encoded with universal types, and
&gt; since we have universal types in classes, there may be a way to to this
&gt; already)

The encoding of modules using existential types in non modular, this
basically means that you have to heavily transform the source.

What one need to encode modules is "open" existential types, this well
and clearly explained in this POPL'09 paper:

  Â«Modeling Abstract Types in Modules with Open Existential TypesÂ»,
    by BenoÃ®t Montagu and Didier RÃ©my

&gt; * namespace (which I'm sure could be encoded somehow).
&gt; 
&gt; Now, the syntax would certainly be awful, but if I'm right it wouldn't
&gt; take too much to get these modules into the compiler.

Kind regards,

-- 
Nicolas Pouillard

</contents>

</message>

