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=1.1 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 2A93BBC69 for ; Fri, 9 Mar 2007 17:28:27 +0100 (CET) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.191]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l29GSPrV004475 for ; Fri, 9 Mar 2007 17:28:26 +0100 Received: by nf-out-0910.google.com with SMTP id a27so1093486nfc for ; Fri, 09 Mar 2007 08:28:25 -0800 (PST) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=gInsQ4kwMP5Dg/RLOWQKeKkl0xGAizxTF6ykoEltH2TJILgS9YbKPU33HNeUBP9yIsKGJ1Ho+Hh6riFqez/MxoOMB+YZ8PP5qvJ6LXe35HeiWZmnzKAiUSD+PcL6SXzh5j2t6205tqExCpRaBflnC8dp7p6usK5ESpRf3hXAVDM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=Q2AAI0B8U1kYPk4vLEpw95lCLsIuq41onarKX203V0DVReaDmSfZIxoh6nEGN+tbcsfF5oRE31MudCVwayrYq7jW8TCfsUO72Me0XSdoTIehwJ6hu2YDcIIWCp39V3Vjuj7XYmw9eNpupKQVPOwM2USeonv05DPj3ze1Kr7cnI0= Received: by 10.82.155.10 with SMTP id c10mr3064225bue.1173457705243; Fri, 09 Mar 2007 08:28:25 -0800 (PST) Received: by 10.82.112.13 with HTTP; Fri, 9 Mar 2007 08:28:25 -0800 (PST) Message-ID: <17af13780703090828s4a9da0c6s7ee12cf37f830b94@mail.gmail.com> Date: Fri, 9 Mar 2007 11:28:25 -0500 From: "Ian Zimmerman" To: "Jon Harrop" Subject: Re: [Caml-list] Operator overloading Cc: caml-list@yquem.inria.fr In-Reply-To: <200703091029.01688.jon@ffconsultancy.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3D1E4D9CA9BCE04D8F2B55F203AE4CE30666AB74@selma.roomandboard.com> <17af13780703081414m24548d77n7eb25ef9d551617c@mail.gmail.com> <200703091029.01688.jon@ffconsultancy.com> X-j-chkmail-Score: MSGID : 45F18B29.002 on discorde : j-chkmail score : X : 0/20 1 0.000 -> 1 X-Miltered: at discorde with ID 45F18B29.002 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; overloading:01 inference:01 inference:01 foo:01 functors:01 formalize:01 annotations:01 overloading:01 caml-list:01 zimmerman:01 semantic:02 tradeoff:03 ian:03 complex:04 definition:07 > But aren't we all here because we like inference and brevity? Inference: On condition it is _controlled_. I.e. seeing operator used on a complex type, I need to know I have seen its definition and satisfied myself that it has the expected semantic properties. That's just what functors formalize. Brevity: There's the pesky tradeoff with some type annotations being required when you introduce overloading.