[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | David Monniaux <David.Monniaux@e...> |
| Subject: | [Caml-list] module types and polymorphic variants |
I tried the following:
module type MT =
sig
type t
val f: t->int
end with type t = 'x constraint 'x = [> `A];;
module N (M : MT) =
struct
type t = [M.t | `B]
let f: t->int = function
`B -> 1
| x -> M.f x
end;;
ocaml gives me:
module type MT = sig type t = [> `A] val f : t -> int end
but this latter definition is NOT accepted by OCaml:
"Unbound type parameter [..]"
The functor definition is refused because
"The type M.t is not a polymorphic variant type"
Is there a workaround?
David Monniaux http://www.di.ens.fr/~monniaux
Laboratoire d'informatique de l'École Normale Supérieure,
Paris, France
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr