From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id AAA02421 for caml-redistribution; Wed, 23 Jun 1999 00:01:41 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA25835 for ; Tue, 22 Jun 1999 17:38:56 +0200 (MET DST) Received: from wool.cma.ensmp.fr (cma.ensmp.fr [192.54.165.201]) by nez-perce.inria.fr (8.8.7/8.8.7) with SMTP id RAA05691 for ; Tue, 22 Jun 1999 17:38:53 +0200 (MET DST) Received: by wool.cma.ensmp.fr; (5.65v4.0/1.3/10May95) id AA26427; Tue, 22 Jun 1999 17:38:54 +0200 Received: from somewhere by smtpxd Message-Id: <376FAE0E.9C1AD8AE@ens-lyon.fr> Date: Tue, 22 Jun 1999 17:38:54 +0200 From: Daniel Bonniot X-Mailer: Mozilla 4.6 [en] (WinNT; I) X-Accept-Language: fr,en Mime-Version: 1.0 To: caml-list@inria.fr Subject: Typage des modules Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: weis Bonjour, Comment resoudre le probleme suivant ? Le module A declare un type a, le module B renvoie une valeur de type a et A utilise B dans son implementation : (* a.mli *) type a val v:a (* a.ml *) type a = { x: int} let v = B.f {x=3} (* b.mli *) val f : A.a-> A.a (* b.ml *) let f x =x Voici le resultat des compilations: moo>ls a.ml a.mli b.ml b.mli moo>ocamlc -c a.mli moo>ocamlc -c b.mli moo>ocamlc -c a.ml File "a.ml", line 2, characters 12-17: This expression has type a but is here used with type A.a moo> Cette erreur est logique etant donne le systeme de typage des modules, mais comment ecrire ce genre de dependances ? Daniel Bonniot