caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
To: johan.baltie@wanadoo.fr
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Abstract type over modules
Date: Mon, 18 Nov 2002 08:48:55 +0900	[thread overview]
Message-ID: <20021118084855G.garrigue@kurims.kyoto-u.ac.jp> (raw)
In-Reply-To: <200211171202.07170.johan.baltie@wanadoo.fr>

From: Johan Baltié <johan.baltie@wanadoo.fr>

> I'm having a strange problem with an abstract type used in 2 modules.
> 
> The problem can be summarized as:
> 
> ************************* test1.mli ************************* 
> type toto
> 
> val test : toto -> toto
> 
> ************************* test2.mli ************************* 
> open Test1
> 
> val test2 : toto -> toto
> 
> ************************* test1.ml ************************* 
> 
>  type toto = int
> 
> let test a = (Test2.test2 a) 

OCaml does not allow mutual recursion between modules.
This prohibition is not strictly enforced (you can actually compile
test2.mli before test1.ml), but the problem appears when you try to
use the recursion.
Here the trouble is that, inside Test1, toto and Test1.toto are not
the same type: we still don't know that we are defining Test1, so
Test1.toto is just another type from another module named Test1.
Merging the two modules is probably the simplest workaround.

---------------------------------------------------------------------------
Jacques Garrigue      Kyoto University     garrigue at kurims.kyoto-u.ac.jp
		<A HREF=http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/>JG</A>
-------------------
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


      reply	other threads:[~2002-11-17 23:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-17 11:02 Johan Baltié
2002-11-17 23:48 ` Jacques Garrigue [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021118084855G.garrigue@kurims.kyoto-u.ac.jp \
    --to=garrigue@kurims.kyoto-u.ac.jp \
    --cc=caml-list@inria.fr \
    --cc=johan.baltie@wanadoo.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).