From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 1E2B97FE44 for ; Mon, 4 Jul 2016 12:19:20 +0200 (CEST) IronPort-PHdr: 9a23:Brv/ZhDKwda+pKyZGUKSUyQJP3N1i/DPJgcQr6AfoPdwSP79pMbcNUDSrc9gkEXOFd2CrakV06yM6eu6BCQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6kO74TNaIBjjLw09fr2zQd+KyZ7tnLrvs7ToICxwzAKnZr1zKBjk5S7wjeIxxbVYF6Aq1xHSqWFJcekFjUlhJFaUggqurpzopM0rsRxQuukh9shPFKvgOq4xS6VFAXxmaDhtpZ6jiR6WRgKK4j4YU34KuhtOGQnMqh/gDbnrtS6vme1mxyicddPxS/geQzmu4r1vTwCg3CgALCE49iTJz8ZYk69R5h6s8U8si7XIaZ2YYaMtNpjWeskXEDEZBss= Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=goswin-v-b@web.de; spf=Pass smtp.mailfrom=goswin-v-b@web.de; spf=None smtp.helo=postmaster@mout.web.de Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of goswin-v-b@web.de) identity=pra; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of goswin-v-b@web.de designates 212.227.17.12 as permitted sender) identity=mailfrom; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.web.de) identity=helo; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="postmaster@mout.web.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DkAQC1N3pXhwwR49RcFoN+fKYzimuKDiKFdgKBMzwQAQEBAQEBAQERAQEBCA0JCSEvQQ4BgWYBAQEBAoIRAQUjDwFWCxgCAgUhAgIPBSiISQEaBAqqPopNH4RVAQslgQGJdIQIgQSCNSuCLwWZE449iUcKhWOQCjWCOCKBN2wBAYJnhG6BNQEBAQ X-IPAS-Result: A0DkAQC1N3pXhwwR49RcFoN+fKYzimuKDiKFdgKBMzwQAQEBAQEBAQERAQEBCA0JCSEvQQ4BgWYBAQEBAoIRAQUjDwFWCxgCAgUhAgIPBSiISQEaBAqqPopNH4RVAQslgQGJdIQIgQSCNSuCLwWZE449iUcKhWOQCjWCOCKBN2wBAYJnhG6BNQEBAQ X-IronPort-AV: E=Sophos;i="5.26,574,1459807200"; d="scan'208";a="225373210" Received: from mout.web.de ([212.227.17.12]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jul 2016 12:19:19 +0200 Received: from frosties.localnet ([134.3.242.84]) by smtp.web.de (mrweb102) with ESMTPSA (Nemesis) id 0MKrPw-1bK0yE3rLk-00067O for ; Mon, 04 Jul 2016 12:19:18 +0200 Received: from mrvn by frosties.localnet with local (Exim 4.87) (envelope-from ) id 1bK0yE-0002Ez-8n for caml-list@inria.fr; Mon, 04 Jul 2016 12:19:18 +0200 Date: Mon, 4 Jul 2016 12:19:18 +0200 From: Goswin von Brederlow To: caml-list@inria.fr Message-ID: <20160704101918.GB7663@frosties> References: <5777F87C01E101EA0039001D_0_1002@p057> <9F10B996-F8B0-48A7-A5A9-21A05EE54AB1@math.nagoya-u.ac.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9F10B996-F8B0-48A7-A5A9-21A05EE54AB1@math.nagoya-u.ac.jp> User-Agent: Mutt/1.5.23 (2014-03-12) X-Provags-ID: V03:K0:27+XsLe9lDlRD+jkOVNXJtLflAnOAoTDa+ylU3XFA1Gb8W9qkU1 k9LSkgTtZmL92Rf/OBIVuIW3p1U6sDZWfB4QsRbrsKnfQCt1PlNSv7rKbRYxPz/ebD2g2Lk jsH9tDWg6JVpAPqAzleNteh/y/awjvG2DnPVqDSN+oyPfgmvbWq5IuiNJNlgMim/RnWmhWE XSzcFZ6EXiTCCJARVmwEA== X-UI-Out-Filterresults: notjunk:1;V01:K0:XjYvydmilkY=:g9/fA0IohTTGPkv2n5WgHd wwyAQCVBuEu20y7I/yJ7A/PjZqVQS8uTBjyXzvm3m3cSxbK6kFTtNiIEnGc1cTh+0hvgOG6Zh PE3yQFE4vdCDLgnXa7KSBvaWIZePbVQZ2ZpY+tHTdvScv5as0YQWMenpn/vZrv/0F0xW/LQh/ v8Ao2Cku8MfUxdF0a+f1ivwIeP2aMCc7DHoZImE0RtyWrsxzTZwFZM665QfpNsB+Wexu2NgU+ iwlrcRuFatchPAA5dWSn6qYthM9r+c+lposHRZy3BqYju+rxFM5u2rR261el+mjcsSVS+zxRU 88wIEHYzIXZv5+iJghI+A6+c6Lgs7z5JjMTv3zqhHQv1hHSQj+QOvmZagUHE3K6kFaB1QtJmw dLFq3N+o2EvIUbo6aXFBh4pPzkh4V7cfyVFpqCmPHDNpizbbvf2ZPjNOtiKR+nwi+omX3QjD1 u9P27tT1raZr0stOBxYl/zQnOrE92C277MCn5XnhdUs2N5O1iSF+cdhxPs+/iNn/7+hLhLVEp xgOkhMcDSNFy1wiwjLagRBU88CpIQkEVVhmJxzisfgAuByckTlrCU6RGwSAelB2k1856usHDW e/s4icx/2/86kyjYXMVkZR3G50WuaUYaT3ByxyW90lzj1xazC27o54ZtW3RFF1rZLWz7lkSie 6s+VJCans1w1aoLCEJANqg0HZtrk89dMYELouAaDrMeRkvRQP+FsaJDfRkJJgD/iP/K2+yQtw mor/D1OGuFRDTJn+Yx8UlB57NrZiktvT8n0odiSlbBqSwSI/fdLmsf8YkRM= Subject: Re: [Caml-list] question: what is the recommended use case of `val` in class type On Sun, Jul 03, 2016 at 03:23:35PM +0900, Jacques Garrigue wrote: > Hi Hongo, > > You may want to have a look at a small camlp4 syntax extension I wrote a long time ago, > which allows to do what you say. > Using it, one would write: > > val mutable x with accessor > > to say that it can be accessed through the x and x_set methods. > > The code is here: > http://www.math.nagoya-u.ac.jp/~garrigue/code/ocaml.html > > Note that I didn’t try to support functional state changes, i.e. adding a method > method x_upd x’ = {< x = x’ >} > > Jacques What's the point of x then? Wouldn't it make more sense to only expose the accessors so even derived classes will go through them instead of accessing x directly? Question: Can ppx attributes generate the accessors but also hide the "val mutable x" when no mli file is present? MfG Goswin