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.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 16154BC69 for ; Fri, 16 Nov 2007 18:27:36 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAIVhPUdA6aq+mGdsb2JhbACPDQEBAQEHAgYr X-IronPort-AV: E=Sophos;i="4.21,427,1188770400"; d="scan'208";a="19393097" Received: from rn-out-0910.google.com (HELO rn-out-0102.google.com) ([64.233.170.190]) by mail4-smtp-sop.national.inria.fr with ESMTP; 16 Nov 2007 18:27:35 +0100 Received: by rn-out-0102.google.com with SMTP id s46so155991rnb for ; Fri, 16 Nov 2007 09:27:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; bh=sIC+jDyDeTyt0tyHTdl5lbI4qchg1o2UyyacQ5k4UHQ=; b=AU1pJD7MNYnvPFYJP8va4Ne0HM93BueK95H/PHZsxggfKR76Dm0J+xfKC1pqCnhY+FKIe7Eo35LfDBbr8l7r2OTwx1B+rKXQ4mh8GALyvJ6o+Ms5y/qYkhQ2l+h2LlySmKu8iYi5olbiUc4/RjVTq62qyKWqbG2zyNQrvyzqfrA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=Tslv0RHGLwAUPhBViJkdBrk/YDQff2NLrXBNQQ15Wifb6gj4Wp7Q/k4tIl7mv8iC1XSoGzf+Hi5tNqyJa+1TtzRbmGiSyLF6QIzsAUvvsKRtpTo53oUhA8WcTr7sidjOOcR2F+TcQYq3qfHS7mpV+jWS8KZNG9KXnx6D27A3gME= Received: by 10.143.16.9 with SMTP id t9mr694732wfi.1195234053536; Fri, 16 Nov 2007 09:27:33 -0800 (PST) Received: from ?192.168.0.7? ( [69.152.94.247]) by mx.google.com with ESMTPS id i18sm4723071wxd.2007.11.16.09.27.31 (version=SSLv3 cipher=RC4-MD5); Fri, 16 Nov 2007 09:27:32 -0800 (PST) Message-ID: <473DD301.90307@gmail.com> Date: Fri, 16 Nov 2007 11:27:29 -0600 From: Edgar Friendly User-Agent: Thunderbird 2.0.0.9 (X11/20071031) MIME-Version: 1.0 To: Martin Jambon Cc: Alain Frisch , caml-list Subject: Re: [Caml-list] Compiler feature - useful or not? References: <473A363F.2080301@gmail.com> <891bd3390711131608g48b584a4n6b0ccab95d7de3f3@mail.gmail.com> <20071114075827.GA24058@yquem.inria.fr> <473AEC04.3030303@frisch.fr> <20071114143524.GA4423@yquem.inria.fr> <473B249D.9040703@frisch.fr> <20071114184352.GB28796@yquem.inria.fr> <473BE750.9060301@frisch.fr> <20071115132649.GB15754@yquem.inria.fr> <891bd3390711151630x238b8eddod5b7462d0fa1c735@mail.gmail.com> <473D61A3.9090708@frisch.fr> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; compiler:01 edgar:98 wrote:01 caml-list:01 int:01 jambon:01 define:02 let:03 types:05 fold:06 group:07 group:07 suggestions:07 fun:08 useful:09 Martin Jambon wrote: > Please don't take my suggestions too seriously, but it could be cool to > define types such as: > > type bit = [ 0 | 1 ] > > > Martin How about this: type permission = User_read -> 0o400 | User_write -> 0o200 | User_execute -> 0o100 | Group_read -> 0o40 | Group_write -> 0o20 | Group_execute -> 0o10 | World_read -> 0o4 | World_write -> 0o2 | World_execute -> 0o1 let combine (pl: permission list) = List.fold_left (fun a b -> a lor (b :> int)) 0 pl E.