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=none 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 F3418BC6B for ; Wed, 27 Jun 2007 17:28:23 +0200 (CEST) Received: from oden.vtab.com (dns.vtab.com [62.20.90.195]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l5RFSLbQ023623 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 27 Jun 2007 17:28:23 +0200 Received: from oden.vtab.com (oden.vtab.com [127.0.0.1]) by oden.vtab.com (Postfix) with ESMTP id DEFC426EEAA; Wed, 27 Jun 2007 17:28:20 +0200 (CEST) Received: from virtutech.se (alfredo.hq.vtech [10.0.0.52]) by oden.vtab.com (Postfix) with ESMTP id C158626EEA6; Wed, 27 Jun 2007 17:28:20 +0200 (CEST) Received: (from mattias@localhost) by virtutech.se (8.11.6/8.11.6) id l5RFSKF04408; Wed, 27 Jun 2007 17:28:20 +0200 Date: Wed, 27 Jun 2007 17:28:20 +0200 Message-Id: <200706271528.l5RFSKF04408@virtutech.se> From: "=?iso-8859-1?q?Mattias_Engdeg=E5rd?=" To: jon@ffconsultancy.com Cc: caml-list@yquem.inria.fr In-reply-to: <200706271453.06045.jon@ffconsultancy.com> (message from Jon Harrop on Wed, 27 Jun 2007 14:53:05 +0100) Subject: Re: [Caml-list] The Implicit Accumulator: a design pattern using optional arguments Content-Type: text/plain; charset=iso-8859-1 References: <200706271314.35134.jon@ffconsultancy.com> <1A1D6F56-B3DB-4552-969C-9859482175AC@lrde.epita.fr> <200706271453.06045.jon@ffconsultancy.com> X-Virus-Scanned: ClamAV using ClamSMTP X-j-chkmail-Score: MSGID : 46828215.000 on discorde : j-chkmail score : X : 0/20 1 0.000 -> 1 X-Miltered: at discorde with ID 46828215.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; mattias:01 mattias:01 hashtbl:01 hashtbl:01 val:01 accessor:01 inlined:01 abstract:01 caml-list:01 string:02 string:02 implicit:03 let:03 let:03 pattern:04 ># let symbol = > let m = Hashtbl.create 1 in > fun string -> > try Hashtbl.find m string with Not_found -> > Hashtbl.add m string string; > string;; >val symbol : '_a -> '_a = Nice, but perhaps it should return a different type to avoid accidentally comparing an interned string with a non-interned one? We would need an accessor to extract the string from an abstract type but I suppose that would be inlined.