[
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: | 2006-09-13 (09:48) |
From: | Jonathan Roewen <jonathan.roewen@g...> |
Subject: | Re: [Caml-list] Modules within classes |
As for a workaround, use List.sort. I presume there's a real reason to want to use Set rather than the contrived example given though... if not, then there's your solution (= Jonathan PS: The order of traversing the list doesn't seem to be of much significance, so List.fold_left might be better suited. On 9/13/06, Jonathan Roewen <jonathan.roewen@gmail.com> wrote: > It's the same at normal scope: > > type t = 'a;; doesn't compile. > > you need: type 'a t = 'a, which isn't compatible with input type for Set. > > I think the Set module is intentionally monomorphic... > > Jonathan > > On 9/13/06, Martin Hofmann <mhofmann@tcs.ifi.lmu.de> wrote: > > Dear all, > > > > Can someone explain what is wrong here and perhaps suggest a workaround? > > > > class ['a] test ( l : 'a list) = > > object > > method result = > > let module M = > > struct > > type t = 'a > > let compare x y = > > if x < y then -1 else if x > y then 1 else 0 > > end > > in > > let module MSet = Set.Make(M) > > in MSet.elements (List.fold_right MSet.add l MSet.empty) > > end;; > > > > OCaml says: "Unbound type parameter 'a". > > > > Our aim is of course not to program sorting the umpteenth time but to > > have a means for using Pervasives.Set within a parametrised class. > > > > The problem seems to be that although "class ['a]" binds 'a its use is > > nevertheless disallowed in the scope of the class declaration. > > > > Many thanks in advance! > > > > Martin Hofmann (on behalf of Oliver Friedmann) > > > > _______________________________________________ > > Caml-list mailing list. Subscription management: > > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > > Archives: http://caml.inria.fr > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > > Bug reports: http://caml.inria.fr/bin/caml-bugs > > >