From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id VAA13856 for caml-red; Mon, 6 Nov 2000 21:10:41 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id OAA21838 for ; Sun, 5 Nov 2000 14:00:05 +0100 (MET) Received: from dopamine.iq.org (dopamine.iq.org [203.4.184.129]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id eA5CxxP06912 for ; Sun, 5 Nov 2000 14:00:03 +0100 (MET) Received: by dopamine.iq.org (Postfix, from userid 110) id 5A16810F52; Sat, 4 Nov 2000 16:29:35 +1100 (EST) To: caml-list@inria.fr Subject: modules and recursive types Cc: proff@iq.org From: Julian Assange Date: 04 Nov 2000 16:29:33 +1100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: weis@pauillac.inria.fr I'd like to do something like the following: type snode = Empty | Snode of CharSet.t and module CharSet = Set.Make(struct type t = char * snode let compare (x,_) (y,_) = Pervasives.compare x y end) That is define an inter-dependent typing relationship between two modules (although there is only one module here, the other can be viewed as the `null' module). Is this possible? If not is there another way to achieve the effect? Cheers, Julian.