Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Sep 2008 03:19:24 +0200 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id m8A1JIpG020439 for ; Wed, 10 Sep 2008 03:19:19 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id m8A1FZS8025317 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Sep 2008 03:15:35 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id m89M1PbM032197; Wed, 10 Sep 2008 03:15:20 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 28809 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 10 Sep 2008 03:15:20 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id m8A1FKAM015263 for ; Wed, 10 Sep 2008 03:15:20 +0200 Received: from rv-out-0708.google.com (rv-out-0708.google.com [209.85.198.241]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id m8A1FLm1025206 for ; Wed, 10 Sep 2008 03:15:24 +0200 Received: by rv-out-0708.google.com with SMTP id c5so1977969rvf.10 for ; Tue, 09 Sep 2008 18:15:15 -0700 (PDT) Received: by 10.140.126.14 with SMTP id y14mr350722rvc.160.1221009315019; Tue, 09 Sep 2008 18:15:15 -0700 (PDT) Received: from ?10.0.1.102? ( [219.90.231.17]) by mx.google.com with ESMTPS id f21sm11169783rvb.5.2008.09.09.18.15.12 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 09 Sep 2008 18:15:14 -0700 (PDT) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v928.1) References: <48C3DAD1.6030004@morningstar2.co.uk> <4B6A6CEE-A06F-4EAC-B618-3B637A5902E4@gmail.com> <18630.50165.621679.420173@morse.mittelbach-online.de> X-Mailer: Apple Mail (2.928.1) X-Spam-Whitelist: Message-ID: <20B59161-A27F-4FE5-98E5-0FB3F051073B@gmail.com> Date: Wed, 10 Sep 2008 10:45:10 +0930 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Will Robertson Subject: Re: expl3 variant expansion forms To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <18630.50165.621679.420173@morse.mittelbach-online.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -2.599 () BAYES_00 X-Scanned-By: MIMEDefang 2.64 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 10 Sep 2008 01:19:24.0295 (UTC) FILETIME=[42B73970:01C912E3] Status: R X-Status: X-Keywords: X-UID: 5266 Hi Frank, Thanks for the detailed comments. When I first read about expl3 years ago, indeed I was naively disappointed that the variants weren't constructed "on the fly". But that's obviously impossible. *** > So rather than providing everyting for the sake of uniformity I > would suggest > to allow for gaps (as they can be very very easily filled ... for any > developer who understood the construction method). I do agree that we don't want to define *most* variants up-front (especially at this early stage), but I think the case involving put_left/put_right is a little bit different. The idea here wasn't to provide the variants "just because", but rather to not confuse the programmer by defining, for example, (as Joseph pointed out) put_right:Nx and *not* gput_right:Nx. While we can't be uniform across the board with providing every expansion variant, I do think we should be uniform amongst commands that are so similar. Recall again that we're talking about functions like clist_put_left seq_put_left tlp_put_left toks_put_left so it seems crazy (IMHO!!) not to define *them* uniformly. Now, in the code I posted to the repository I went somewhat overboard, because I erred on the side of adding consistency but without taking anything out (or considering special cases). Since there was an instance of the not-generally useful :Nc and :NC variants for two of the functions, I defined that variant for them all. With the thought that it's always easy to trim down the list after discussing things over here. So I was probably a little unclear about my intentions for that code. Does my reasoning make sense, in the end? Thanks again, Will