<?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="2003/01/d68f500a1b2410c0abf79fecd45781d3"
  from="Thorsten Ohl &lt;ohl@p...&gt;"
  author="Thorsten Ohl"
  date="2003-01-15T17:50:43"
  subject="[Caml-list] Re: Legality of using module types from .mli in .ml"
  prev="2003/01/c93ae47484a0ce585b8050618e59f3d0"
  next="2003/01/7b4356fccebf28ce028122d7511e4854"
  prev-in-thread="2003/01/c93ae47484a0ce585b8050618e59f3d0"
  next-in-thread="2003/01/7b4356fccebf28ce028122d7511e4854"
  prev-thread="2003/01/6b3b8aa926b31df45c1942e68097615c"
  next-thread="2003/01/a2655a29f853a3b70108ffd4274e4fa2"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Legality of using module types from .mli in .ml">
<msg 
  url="2003/01/b4e7497511793e9b3526abc8b6da6d2d"
  from="Thorsten Ohl &lt;ohl@p...&gt;"
  author="Thorsten Ohl"
  date="2003-01-14T21:06:43"
  subject="[Caml-list] Legality of using module types from .mli in .ml">
<msg 
  url="2003/01/c93ae47484a0ce585b8050618e59f3d0"
  from="Julien Signoles &lt;Julien.Signoles@l...&gt;"
  author="Julien Signoles"
  date="2003-01-15T16:33:59"
  subject="[Caml-list] Re: Legality of using module types from .mli in .ml">
<msg 
  url="2003/01/d68f500a1b2410c0abf79fecd45781d3"
  from="Thorsten Ohl &lt;ohl@p...&gt;"
  author="Thorsten Ohl"
  date="2003-01-15T17:50:43"
  subject="[Caml-list] Re: Legality of using module types from .mli in .ml">
<msg 
  url="2003/01/7b4356fccebf28ce028122d7511e4854"
  from="Julien Signoles &lt;Julien.Signoles@l...&gt;"
  author="Julien Signoles"
  date="2003-01-15T17:48:55"
  subject="[Caml-list] Re: Legality of using module types from .mli in .ml">
<msg 
  url="2003/01/5ca757063c7fae3284cbb1919186faa3"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-01-15T21:58:04"
  subject="Re: [Caml-list] Re: Legality of using module types from .mli in .ml">
</msg>
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
Julien Signoles &lt;Julien.Signoles@lri.fr&gt; writes:

&gt; The previous example doesn't break my defunctorizer :
&gt; 
&gt; 	  $ ocamldefun --version
&gt; 	  1.02
&gt; 	  $ ocamldefun a.mli a.ml
&gt; 	  $ cat a.ml
&gt; 	  module type T = A.T
&gt; 	  module M = struct let n = 42 end
&gt; 
&gt; That's ok (normal because a.mli is still in the ocamldefun environment
&gt; when a.ml is defunctorized)...

The O'Caml compiler will later not be able to resolve A.T if you use
the `-d' option:

    ohl@wptx47:~misc$ ocamldefun -v
    1.02
    ohl@wptx47:~misc$ cat a.mli
    module type T = sig val n : int end
    module M : T
    ohl@wptx47:~misc$ cat a.ml 
    module type T = A.T
    module M : T = struct let n = 42 end
    ohl@wptx47:~misc$ ocamldefun -d defun a.mli a.ml
    ohl@wptx47:~misc$ cd defun/
    ohl@wptx47:~defun$ ls
    a.cmd  a.ml
    ohl@wptx47:~defun$ cat a.ml
    module type T = A.T
    module M = struct let n = 42 end
    ohl@wptx47:~defun$ ocamlopt a.ml
    File "a.ml", line 1, characters 16-19:
    Unbound module type A.T

I could ignore appendix B of the manual and create a a.cmi:

    ohl@wptx47:~defun$ cp ../a.mli . 
    ohl@wptx47:~defun$ ocamlc a.mli
    ohl@wptx47:~defun$ ocamlopt a.ml

but I'm not supposed to do that, am I?

BTW: given the (currently) uncertain semantics, I have started to
remove the construct from my applications.
-- 
Thorsten Ohl, Physics Dept., Wuerzburg Univ. -- ohl@physik.uni-wuerzburg.de
http://theorie.physik.uni-wuerzburg.de/~ohl/     [&lt;=== PGP public key here]
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

