From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id C2E87BBAF for ; Fri, 12 Nov 2010 06:57:28 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlMDAHJm3EyACH+RhWdsb2JhbACiYQEBAQoLCgUTIrVWiGmFSgSEWokJ X-IronPort-AV: E=Sophos;i="4.59,186,1288566000"; d="scan'208";a="86822850" Received: from router-304.cs.umd.edu (HELO bacon.cs.umd.edu) ([128.8.127.145]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 12 Nov 2010 06:57:28 +0100 X-CSD-MailScanner-Watermark: 1290146240.98764@m3DJWZt5N9EdoaHUMlKNMg Received: from [192.168.2.100] (pool-108-18-176-74.washdc.east.verizon.net [108.18.176.74]) (authenticated bits=0) by bacon.cs.umd.edu (8.13.1/8.14.1) with ESMTP id oAC5vJue021255 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Fri, 12 Nov 2010 00:57:20 -0500 Message-Id: From: Elnatan Reisner To: OCaml List Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) Subject: Pervasives.compare != Pervasives.compare Date: Fri, 12 Nov 2010 00:57:18 -0500 X-Mailer: Apple Mail (2.936) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0 (bacon.cs.umd.edu [172.24.3.34]); Fri, 12 Nov 2010 00:57:20 -0500 (EST) X-CSD-Milter-Status: Skipped oAC5vJue021255 on bacon (user authenticated to SMTP server) X-CSD-MailScanner-Information: Please email staff@cs.umd.edu for more information X-MailScanner-ID: oAC5vJue021255 X-CSD-MailScanner: Found to be clean X-CSD-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-50, required 5, autolearn=not spam, ALL_TRUSTED -50.00) X-CSD-MailScanner-From: elnatan@cs.umd.edu X-Spam: no; 0.00; pervasives:01 pervasives:01 bool:01 val:01 bool:01 val:01 int:01 int:01 caml:02 objective:02 seems:03 let:03 let:03 function:08 fun:08 I was surprised when I noticed the following behavior: Objective Caml version 3.11.2 # compare == compare;; - : bool = false # let f = compare;; val f : 'a -> 'a -> int = # f == compare;; - : bool = false # f == f;; - : bool = true # let g = compare;; val g : 'a -> 'a -> int = # f == g;; - : bool = false Playing around a bit more, I seemed to find that every time you access an 'external' function, you get a distinct reference (is there a better term?) to it. This seems a bit odd to me. Can someone explain? Thanks, Elnatan