Version française
Home     About     Download     Resources     Contact us    
Browse thread
Types construits et interface de modules
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: boos@a...
Subject: Re: Types construits et interface de modules

Salut Sven,

Ton truc ne marche évidemment pas en O'Caml, les constructeurs ne sont
pas du tout des valeurs fonctionnelles (comme ils le sont en SML).

Par contre, une
fonctionnalité assez proche de ce que tu recherches existe dans
O'Labl : les variants polymorphes.
Ca fait longtemps que je n'ai plus touché à O'Labl, donc je
te dis ca de tête :


module type T = sig
	type t = [ `A | `B ]
	end
module A = struct
	type t = [ `A | `B ]
	end
module B = struct
	type t = [ `A | `B | `C ]
	end

module F (M:T) = struct
	type t = M.t
	end

module MA = F (A)
module MB = F (B)


[English: what Sven asked for in his mail is probably Jacques Garrigue
's  "Polymorphic Variants" (in O'Labl) ]


-- Christian

(qui découvre avec bonheur O'Caml-2 : félicitations tout le monde !)