From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 87A92BC6C for ; Mon, 28 Jan 2008 15:23:11 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAABR0nUfAXQInh2dsb2JhbACQKQEBAQgKKZo3 X-IronPort-AV: E=Sophos;i="4.25,260,1199660400"; d="scan'208";a="8451138" Received: from concorde.inria.fr ([192.93.2.39]) by mail3-smtp-sop.national.inria.fr with ESMTP; 28 Jan 2008 15:23:11 +0100 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m0SEN6Ib000532 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 28 Jan 2008 15:23:11 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao8CAJtznUdCm3xr/2dsb2JhbACrEQ X-IronPort-AV: E=Sophos;i="4.25,260,1199660400"; d="scan'208";a="7330876" Received: from janestcapital.com (HELO smtp.janestcapital.com) ([66.155.124.107]) by mail1-smtp-roc.national.inria.fr with ESMTP; 28 Jan 2008 15:23:05 +0100 Received: from [172.25.129.161] [38.96.172.125] by janestcapital.com with ESMTP (SMTPD-9.10) id A5460208; Mon, 28 Jan 2008 09:23:02 -0500 Message-ID: <479DE545.9050306@janestcapital.com> Date: Mon, 28 Jan 2008 09:23:01 -0500 From: Brian Hurt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jon Harrop Cc: yminsky@gmail.com, caml-list@inria.fr Subject: Re: [Caml-list] [OSR] OCaml Standard Recommandation Process References: <1201440183.6302.27.camel@Blefuscu> <200801272107.23900.jon@ffconsultancy.com> <891bd3390801271347y56af21cam492ccaac1348bb05@mail.gmail.com> <200801281204.00689.jon@ffconsultancy.com> In-Reply-To: <200801281204.00689.jon@ffconsultancy.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 479DE54A.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 bindings:01 overloading:01 overloading:01 inference:01 inference:01 foo:01 non-trivial:01 imho:01 wrote:01 caml-list:01 string:02 languages:03 finalise:04 complex:05 Jon Harrop wrote: >There are also many features that I would like to steal from other languages: > >. The IDisposable interface from .NET and F#'s "use" bindings. > > Is there a reason that Gc.finalise doesn't work? >and some more involved ones like operator overloading. > > > I *hate* operator overloading. My experience in C++ is for every time this feature is used legitimately (i.e. to implement complex numbers or whatever), it's abused 10 times- and that's ignoring C++'s use of the bit shift operators << and >> for I/O, and the use of + for string concatentation, both of which I'd argue really should be considered abuses, as far as I'm concerned. And this is ignoring the difficulty of type inference in the presence of overloaded operators. The best way to handle this IMHO is Haskell-style type classes. Which solves the whole type inference problem, and rules most of what I consider abuses of operator overloading (for example, if you have a '+' operator, you also have to have a '*' operator- and what is "foo" * "bar"?). But this is a very non-trivial change to the language. Just my $0.02. Brian