From: Bouzid Djamila <Bouzid.Djamila@loria.fr>
Message-Id: <199605241404.QAA04595@delsarte.loria.fr>
Subject: csl-> pb avec les fonctions dans le module
To: caml-list@pauillac.inria.fr
Date: Fri, 24 May 1996 16:04:18 +0200 (MET DST)
Bonjour,
Voila mon probleme :
quand je rentre dans l'interpreteur Caml Special Light la fonction
let do_if_debug x = if x then (function (f, a) -> (f a))
else (function (f,a)-> ());;
la reponse est
val do_if_debug : bool -> ('a -> unit) * 'a -> unit = <fun>
mais si j'introduis la meme fonction dans un functor c-a-d
si je rentre par exemple
module type S1 = sig val x : bool end
module F (X: S1) =
struct
let do_if_debug = if X.x then (function (f, a) -> (f a))
else (function (f,a)-> ())
end;;
il m'affiche le message d'erreur suivant
The type of this expression, ('_a -> unit) * '_a -> unit,
contains type variables that cannot be generalized
A quoi cela est du ??
Merci pour la reponse.
--------------------------------------------------------------------
Hi!
My problem is :
if I write in Caml Special Light interpreter this function
let do_if_debug x = if x then (function (f, a) -> (f a))
else (function (f,a)-> ());;
the response of the interpreter is
val do_if_debug : bool -> ('a -> unit) * 'a -> unit = <fun>
but if I introduce the same function in functor i.e
if I write for example
module type S1 = sig val x : bool end
module F (X: S1) =
struct
let do_if_debug = if X.x then (function (f, a) -> (f a))
else (function (f,a)-> ())
end;;
then the response is
The type of this expression, ('_a -> unit) * '_a -> unit,
contains type variables that cannot be generalized
what is the problem ??
Thanks for the response.
D. Bouzid