[
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: | 2007-01-02 (22:56) |
From: | Till Varoquaux <till.varoquaux@g...> |
Subject: | Re: [Caml-list] Type equalities in sub modules |
You seem to be looking for recursive modules, this might prove quite a painful solution since you have to explicitly write the signature (there's no type inference on recursive modules, this is a rather complicated issue. Information can be found in [1])...: module rec M : sig type t = int module B : sig type t = M.t end end= struct type t = int module B = struct type mt = t type t = mt end end;; Happy new year, Till [1]:http://perso.ens-lyon.fr/tom.hirschowitz/ On 1/2/07, Hendrik Tews <H.Tews@cs.ru.nl> wrote: > Daniel Bünzli <daniel.buenzli@epfl.ch> writes: > > In the example below, is there any way to achieve M.B.t = M.t without > introducing the intermediate mt type ? > > > module M = struct > > type t = int > > module B = struct > > type mt = t > > type t = mt > > end > > end > > How about > > module M = struct > type t = int > module BF(T : sig type mt end) = struct > type t = T.mt > end > module B = BF(struct type mt = t end) > end > > ?? > > Hendirk > > _______________________________________________ > 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 >