From: Christophe Raffalli <Christophe.Raffalli@univ-savoie.fr>
To: caml-list@inria.fr
Subject: [Caml-list] Caml 3.01 : pb with include
Date: Mon, 12 Mar 2001 12:52:57 +0100 [thread overview]
Message-ID: <3AACB899.5206E211@univ-savoie.fr> (raw)
In-Reply-To: <20010311060436.A14277@verdot.inria.fr>
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
next prev parent reply other threads:[~2001-03-12 15:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-11 5:04 [Caml-list] Camlp4 3.01 released Daniel de Rauglaudre
2001-03-12 11:52 ` Christophe Raffalli [this message]
2001-03-12 17:13 ` [Caml-list] Caml 3.01 : pb with include Andreas Rossberg
2001-03-13 10:32 ` Xavier Leroy
2001-03-13 11:18 ` Andreas Rossberg
2001-03-13 11:23 ` Christophe Raffalli
2001-03-21 13:25 Dave Berry
2001-03-21 16:15 ` Judicael Courant
2001-03-23 12:02 Dave Berry
2001-03-27 9:19 ` Judicael Courant
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3AACB899.5206E211@univ-savoie.fr \
--to=christophe.raffalli@univ-savoie.fr \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).