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 SAA08023; Fri, 6 Jun 2003 18:40:21 +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 SAA08506 for ; Fri, 6 Jun 2003 18:40:19 +0200 (MET DST) Received: from mail.speakeasy.net (mail16.speakeasy.net [216.254.0.216]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h56GeIH22699 for ; Fri, 6 Jun 2003 18:40:18 +0200 (MET DST) Received: (qmail 10539 invoked from network); 6 Jun 2003 16:40:17 -0000 Received: from unknown (HELO grace.speakeasy.org) ([216.254.0.2]) (envelope-sender ) by mail16.speakeasy.net (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for ; 6 Jun 2003 16:40:17 -0000 Date: Fri, 6 Jun 2003 09:40:16 -0700 (PDT) From: brogoff@speakeasy.net To: Pierre Weis cc: Oleg Trott , John Max Skaller , "caml-list@inria.fr" Subject: Re: easy print and read (was: [Caml-list] Why are arithmetic functions not polymorph?) In-Reply-To: <20030606124626.A27959@pauillac.inria.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam: no; 0.00; brogoff:01 caml-list:01 pierre:01 weis:01 gcaml:01 furuse:01 generics:01 generic:01 inferred:01 cristal:01 speakeasy:01 overloading:01 int:01 arithmetic:01 float:02 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Fri, 6 Jun 2003, Pierre Weis wrote: [... snipped lots of good stuff I enthusiastically agree with ...] > Bibliography and further readings: > ================================== Let me add that if you don't want to read lots of type theory papers even if it's good for you, that the GCaml implementation README at http://cristal.inria.fr/~furuse/generics/README.gcaml takes you on a quick walk through what you can do, and it's pretty cool. I'm really looking forward to the next version, which will hopefully include modules. I also wonder about how the object system will fit in with all of this. The interaction of generics with all of this "non-core" ML is still a mystery to us anxious users :-) BTW, someone (Brian Hurt?) brought up a nice simple example of where the current generic polymorphism seems a bit weak generic one = | int => 1 | float => 1.0 ;; generic two = | int => 2 | float => 2.0 ;; generic plus = | float -> float -> float => (+.) | int -> int -> int => (+);; plus one two;; (* Can't determine plus without at least one type annotation *) and it would be nice if in such situations the correct plus could be inferred. This is very exciting stuff! Beyond overloading, this system provides a type safe value IO and dynamic typing capabilities. -- Brian ------------------- 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