From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id BA491BCAE for ; Wed, 29 Jun 2005 06:34:31 +0200 (CEST) Received: from rabbit.math.nagoya-u.ac.jp (rabbit.math.nagoya-u.ac.jp [133.6.130.5]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j5T4YT84019157 for ; Wed, 29 Jun 2005 06:34:31 +0200 Received: from localhost (nat00-b9 [172.16.60.185]) by rabbit.math.nagoya-u.ac.jp (8.12.11/3.7W) with ESMTP id j5T4Y4w9021377; Wed, 29 Jun 2005 13:34:04 +0900 (JST) Date: Wed, 29 Jun 2005 13:34:30 +0900 (JST) Message-Id: <20050629.133430.74757171.garrigue@math.nagoya-u.ac.jp> To: swaroop@cs.jhu.edu, swaroop.sridhar@gmail.com Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Caml type rules From: Jacques Garrigue In-Reply-To: <42C20A70.40305@cs.jhu.edu> References: <42C20A70.40305@cs.jhu.edu> X-Mailer: Mew version 4.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 42C224D5.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 inference:01 datatypes:01 applicative:01 functors:01 higher-order:01 didier:01 vouillon:01 variants:01 inference:01 polymorphism:01 recursive:01 04.:98 jerome:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: From: Swaroop Sridhar > Is there a document that contains all of the type-inference rules of > Ocaml? If so, I would appreciate a reference. No document contains all the rules. (It would be soon obsolete, due to the speed of changes :-) But most of the type system is accounted for in papers and technical reports. The following list may not be 100% accurate, nor complete, but it should give you most of the type system: Core language = HM type inference + algebraic datatypes: Any good textbook on ML. For the module system: Applicative functors and fully transparent higher-order modules. Xavier Leroy, POPL'95. For objects and classes: Objective ML: An effective object-oriented extension to ML. Didier Remy and Jerome Vouillon, POPL'97. For polymorphic variants and object typing: Simple Type Inference for Structural Polymorphism Jacques Garrigue, FOOL'2002. For the typing of imperative features: Relaxing the value restriction. Jacques Garrigue, FLOPS'04. You can also find various papers on more specific aspects on developpers' home pages. Note however that some experimental features lack a detailed presentation. For instance, recursive modules seem to be in this category. Hope this helps, Jacques Garrigue