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 OAA27512; Tue, 13 Mar 2001 14:10:10 +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 OAA27498 for caml-list@pauillac.inria.fr; Tue, 13 Mar 2001 14:10:10 +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 MAA24398 for ; Tue, 13 Mar 2001 12:23:39 +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 f2DBNX900504; Tue, 13 Mar 2001 12:23:33 +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 MAA46468 ; Tue, 13 Mar 2001 12:23:28 +0100 (CET) Message-ID: <3AAE0330.BA5E1674@univ-savoie.fr> Date: Tue, 13 Mar 2001 12:23:28 +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: Xavier Leroy CC: Andreas Rossberg , caml-list@inria.fr Subject: Re: [Caml-list] Caml 3.01 : pb with include References: <20010311060436.A14277@verdot.inria.fr> <3AACB899.5206E211@univ-savoie.fr> <3AAD03BF.BDABDE1@ps.uni-sb.de> <20010313113214.B24377@pauillac.inria.fr> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk What I realy would like are more flexible include and constaints to make the following work: 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 G1 : Semi_Group module G2 : Semi_Group val f : G1.t -> G2.t end (* I would like to be able to use include for the next definition: something like: module type Group_Morphism = sig include Semi_Group_Morphism with module G1 : Group and module G2 : Group end *) module type Group_Morphism = sig module G1 : Group module G2 : Group val f : G1.t -> G2.t end module Idt_Semi_Group_Morphism(SG : Semi_Group) = ( struct module G1 = SG module G2 = SG let f = fun x -> x end : Semi_Group_Morphism with module G1 = SG and module G2 = SG) (* I can't make the next definition work using include at all *) module Idt_Group_Morphism(G : Group) = ( struct include (Idt_Semi_Group_Morphism(G) : Semi_Group_Morphism with module G1 = G and module G2 = G) end : Group_Morphism with module G1 = G and module G2 = G) -- 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