Typage des modules

From: Daniel Bonniot (dbonniot@ens-lyon.fr)
Date: Tue Jun 22 1999 - 17:38:54 MET DST


Message-Id: <376FAE0E.9C1AD8AE@ens-lyon.fr>
Date: Tue, 22 Jun 1999 17:38:54 +0200
From: Daniel Bonniot <dbonniot@ens-lyon.fr>
To: caml-list@inria.fr
Subject: Typage des modules

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



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:23 MET