From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA06965; Mon, 12 Mar 2001 16:58:32 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA06589 for caml-list@pauillac.inria.fr; Mon, 12 Mar 2001 16:58:31 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id MAA31423 for ; Mon, 12 Mar 2001 12:53:04 +0100 (MET) Received: from julie.univ-savoie.fr (univax.univ-savoie.fr [193.48.120.32]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f2CBqwH21668 for ; Mon, 12 Mar 2001 12:52:59 +0100 (MET) Received: from univ-savoie.fr (www.lama.univ-savoie.fr [193.48.123.134]) by julie.univ-savoie.fr (8.9.3/jtpda-5.3.3) with ESMTP id MAA07496 for ; Mon, 12 Mar 2001 12:52:57 +0100 (CET) Message-ID: <3AACB899.5206E211@univ-savoie.fr> Date: Mon, 12 Mar 2001 12:52:57 +0100 From: Christophe Raffalli Organization: =?iso-8859-1?Q?Universit=E9?= de Savoie X-Mailer: Mozilla 4.76 [fr] (X11; U; Linux 2.2.16-9mdksmp i686) X-Accept-Language: en MIME-Version: 1.0 To: caml-list@inria.fr Subject: [Caml-list] Caml 3.01 : pb with include References: <20010311060436.A14277@verdot.inria.fr> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk I tried to use the new include feature for my algebra library. I failed ! Am I missing something ? Here is a small example I created just to show the problem: module type Semi_Group = sig type t val e : t val ( ** ) : t -> t -> t end module type Group = sig include Semi_Group val inv : t -> t end module type Semi_Group_Morphism = sig module SG1 : Semi_Group module SG2 : Semi_Group val f : SG1.t -> SG2.t end module type Group_Morphism = sig module G1 : Group module G2 : Group include Semi_Group_Morphism with module SG1 = G1 and module SG2 = G2 end (* Nice : SG1 et SG2 are groups : Here isCaml answer module type Group_Morphism = sig module G1 : Group module G2 : Group module SG1 : sig type t = G1.t val e : t val ( ** ) : t -> t -> t val inv : t -> t end module SG2 : sig type t = G2.t val e : t val ( ** ) : t -> t -> t val inv : t -> t end val f : SG1.t -> SG2.t end *) module Idt_Semi_Group_Morphism(SG : Semi_Group) = ( struct module SG1 = SG module SG2 = SG let f = fun x -> x end : Semi_Group_Morphism with module SG1 = SG and module SG2 = SG) module Idt_Group_Morphism(G : Group) = ( struct module G1 = G module G2 = G include (Idt_Semi_Group_Morphism(G) : Semi_Group_Morphism with module SG1 = G and module SG2 = G) end : Group_Morphism with module SG1 = G and module SG2 = G and module G1 = G and module G2 = G) (* Heavy and does not work ! Signature mismatch: Modules do not match: sig module SG1 : sig type t = G.t val e : t val ( ** ) : t -> t -> t end module SG2 : sig type t = G.t val e : t val ( ** ) : t -> t -> t end val f : SG1.t -> SG2.t end is not included in sig module SG1 : sig type t = G.t val e : t val ( ** ) : t -> t -> t val inv : t -> t end module SG2 : sig type t = G.t val e : t val ( ** ) : t -> t -> t val inv : t -> t end val f : SG1.t -> SG2.t end Modules do not match: sig type t = G.t val e : t val ( ** ) : t -> t -> t end is not included in sig type t = G.t val e : t val ( ** ) : t -> t -> t val inv : t -> t end The field `inv' is required but not provided *) -- Christophe Raffalli Université de Savoie Batiment Le Chablais, bureau 21 73376 Le Bourget-du-Lac Cedex tél: (33) 4 79 75 81 03 fax: (33) 4 79 75 87 42 mail: Christophe.Raffalli@univ-savoie.fr www: http://www.lama.univ-savoie.fr/~RAFFALLI ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr