Re: CSL modules

Xavier Leroy (xleroy@pauillac.inria.fr)
Wed, 6 Mar 1996 10:28:58 +0100 (MET)

From: Xavier Leroy <xleroy@pauillac.inria.fr>
Message-Id: <199603060928.KAA00291@pauillac.inria.fr>
Subject: Re: CSL modules
To: lux@heidelbg.ibm.com (Wolfgang Lux)
Date: Wed, 6 Mar 1996 10:28:58 +0100 (MET)
In-Reply-To: <9603050903.AA36425@idse.heidelbg.ibm.com> from "Wolfgang Lux" at Mar 5, 96 10:03:33 am

> Being curious I tried this and got an error from CSL 1.14, which I
> really don't understand.

My code was wrong, I just confused the formal parameter "A" of the
functor with the global module "A". CSL just complains that these two
are not a priori the same module (when typing the body of the
functor).

What I should have written is:

module F(A: SIGA)(B: SIGB) =
(struct
type ta = A.ta
type tb = B.tb
let xa = A.xa
let xb = B.xb
end :
sig
type ta = A.ta (* concrete *)
type tb (* abstract *)
val xa : ta
val xb : tb
end)

My apologies for the confusion.

- Xavier Leroy