Version française
Home     About     Download     Resources     Contact us    
Browse thread
Modules, type de modules et type polymorphes.
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sylvain BOULM'E <Sylvain.Boulme@l...>
Subject: Re: Modules, type de modules et type polymorphes.
> Bonjour, ...
> Hello, ...
> 
> quel est le probleme de ceci ?
> 
> # module type T_A = sig
>     val string_of_a : 'a -> string
>   end;;
> module type T_A = sig val string_of_a : 'a -> string end
> # module A : T_A = struct 
>     let string_of_a = string_of_int
>   end;;
> Signature mismatch:

Bonjour,

Le probleme est que dans "T_A", on exige que "string_of_a" soit polymorphe. Or 
dans A, tu ne lui fournis qu'une fonction monomorphe !!
Qq'un qui utilise un module A de type T_A a le droit d'ecrire 
 "A.string_of_a true"
Ce qui provoquerait un segmentation fault avec ton implantation de A...

Je ne sais pas ceux que tu cherches a ecrire, mais qq chose comme ci-dessous 
serait peut-etre plus adapte :

module type T_A = 
 sig type t  val string_of_a : t -> string end

module A: (T_A with type t=int) =
 struct
   type t=int
   let string_of_a = string_of_int
 end

Sylvain.
-- 
Tel. prof : 01-44-27-88-35
Page web  : http://www-spi.lip6.fr/~boulme/