From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA02533; Wed, 26 Mar 2003 09:57:24 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA02857 for ; Wed, 26 Mar 2003 09:57:23 +0100 (MET) X-SPAM-Warning: Sending machine is listed in blackholes.five-ten-sg.com Received: from opus.davidb.org (66-75-152-1.san.rr.com [66.75.152.1]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h2Q8vMf27420 for ; Wed, 26 Mar 2003 09:57:22 +0100 (MET) Received: from davidb by opus.davidb.org with local (Exim 3.31 #1 (Debian)) id 18y6in-0004ER-00 for ; Wed, 26 Mar 2003 00:57:21 -0800 Date: Wed, 26 Mar 2003 00:57:21 -0800 From: David Brown To: Caml List Subject: Re: [Caml-list] Recursive types and functors. Message-ID: <20030326085721.GA16211@opus.davidb.org> References: <20030326062854.GA15098@opus.davidb.org> <16001.25577.356783.999902@gargle.gargle.HOWL> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <16001.25577.356783.999902@gargle.gargle.HOWL> User-Agent: Mutt/1.4i X-Spam: no; 0.00; caml-list:01 functors:01 filliatre:01 orderedtype:01 functor:01 ord:01 'obj:01 polymorphic:01 signatures:02 module:03 dave:03 wrote:03 recursive:03 dynamic:03 argument:03 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Wed, Mar 26, 2003 at 09:25:13AM +0100, Jean-Christophe Filliatre wrote: > A (too) naive solution could be to make a polymorphic instance of the > Set module (either by adding an argument 'a everywhere in signatures > OrderedType and S, or by copying the functor body and replacing > Ord.compare by compare); then you have polymorphic sets, say 'a Set.t, > balanced using compare, and you can define Actually, my real case doesn't use sets, but a dynamic array implementation I made myself. I originally needed a functor because I needed an empty value to fill in past the used elements of the real array. What I ended up doing was filling in those elements with 'Obj.magic 0'. I don't really like walking outside of the type system, but since I never return them, I don't think it will be a problem. I still may try to figure out how to do it with the multiple functor approach, just so to learn how to do it. Thanks, Dave ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners