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 MAA20058; Tue, 30 Apr 2002 12:05:01 +0200 (MET DST) 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 MAA20054 for ; Tue, 30 Apr 2002 12:05:00 +0200 (MET DST) Received: from sunny.pacific.net.au (sunny.pacific.net.au [203.25.148.40]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g3UA4w528871 for ; Tue, 30 Apr 2002 12:04:59 +0200 (MET DST) Received: from wisma.pacific.net.au (wisma.pacific.net.au [210.23.129.72]) by sunny.pacific.net.au with ESMTP id g3UA4pXt022858 for ; Tue, 30 Apr 2002 20:04:51 +1000 (EST) Received: from ozemail.com.au (ppp16.dyn71.pacific.net.au [202.7.71.16]) by wisma.pacific.net.au with ESMTP id UAA08095 for ; Tue, 30 Apr 2002 20:04:50 +1000 (EST) Message-ID: <3CCE6C41.2030900@ozemail.com.au> Date: Tue, 30 Apr 2002 20:04:49 +1000 From: John Max Skaller User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901 X-Accept-Language: en-us MIME-Version: 1.0 To: caml-list@inria.fr Subject: [Caml-list] Modules and typing References: <3CCD55BD.6DB352F5@ps.uni-sb.de> <20020429172853.A6314@pauillac.inria.fr> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk .. I ask a dumb question, and some very interesting stuff I don't understand is exchanged So here's another one :-) Previously, I saw a reference to a paper, but I've lost it, and it may be relevant to me. In Ocaml, a type in a module type t = int (* for example *) can be hidden by binding a type in a signature type t to it. That works, it seems to me, because all types have the same size (usually a pointer) so the abstract type has enough information for the code generator to do the right thing. If one is using expanded types, the basic type system is inadequate, somehow the concrete type has to be 'attached' to the abstract one, so that the type checker uses the abstract one, and the code generator the concrete one, and manipulations in between preserve the link. In the Felix type system, I have such a type combinator, and functions to extract the two parts... Unfortunately, I don't have a proper calculus for dealing with these type pairs. I seem to recall someone mentioned a paper in which types were considered as functors (??) for just this purpose, and some calculus developed. Does anyone recall the mention of the paper or happen to have a URL for it? -- John Max Skaller, mailto:skaller@ozemail.com.au snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia. voice:61-2-9660-0850 ------------------- 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