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=2.3 required=5.0 tests=AWL,DNS_FROM_RFC_ABUSE, RCVD_IN_BL_SPAMCOP_NET,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 nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id A4276BB83 for ; Wed, 6 Sep 2006 07:15:53 +0200 (CEST) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.235]) by nez-perce.inria.fr (8.13.6/8.13.6) with ESMTP id k865FqVW007826 for ; Wed, 6 Sep 2006 07:15:53 +0200 Received: by wx-out-0506.google.com with SMTP id s7so2662497wxc for ; Tue, 05 Sep 2006 22:15:52 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=pQXuvh+BhrUEygyCtg75/Oy2B3th+JPej1EJUQtm/vuMz6RyV+Pf17uchtpAJ1x2gC52UIRk2afZPP2+WcBbcuxLHdFGouvGHQe8rYjtnCKKtU4rKHawCnvBZcqzWtLlVy3+lFbNS/LOPVCYo9OBt20B/Y7T1BMz7rk/fJUo2ys= Received: by 10.70.84.6 with SMTP id h6mr11492780wxb; Tue, 05 Sep 2006 22:15:51 -0700 (PDT) Received: by 10.70.84.13 with HTTP; Tue, 5 Sep 2006 22:15:51 -0700 (PDT) Message-ID: Date: Wed, 6 Sep 2006 17:15:51 +1200 From: "Jonathan Roewen" To: oleg@pobox.com Subject: Re: [Caml-list] Eliminating array bounds check Cc: caml-list@inria.fr In-Reply-To: <20060906050340.7D87BABF9@Adric.metnet.fnmoc.navy.mil> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <44FBD432.8030602@inria.fr> <20060906050340.7D87BABF9@Adric.metnet.fnmoc.navy.mil> X-j-chkmail-Score: MSGID : 44FE5988.001 on nez-perce : j-chkmail score : X : 0/20 1 X-Miltered: at nez-perce with ID 44FE5988.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; generative:01 sml:01 notation:01 val:01 val:01 sml:01 caml-list:01 kernel:01 kernel:01 modules:02 modules:02 defined:02 poly:02 bounds:02 binding:02 > I can hide this code in a trusted kernel: I merely need to be able to > generate unique types. Frankly, what bsearch code really needed is > local generative modules -- something like (in SML notation) > > val test = let local structure A = Kernel(val a = ...) > open A in ... end in ... > > According to my reading of the Definition of the Standard ML, this is > allowed. Alas, neither SML/NJ nor Poly/ML support this pattern. I don't understand what the 'generative' part means, but are modules defined inside a let binding equivalent to the above? Jonathan