Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 21 Aug 2009 18:02:16 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7LG2FJ6008464 for ; Fri, 21 Aug 2009 18:02:15 +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 n7LFxLQr006511 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 21 Aug 2009 17:59:22 +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 n7LFm4gU008874; Fri, 21 Aug 2009 17:59:20 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 290523 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 21 Aug 2009 17:59:20 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7LFxKOt005048 for ; Fri, 21 Aug 2009 17:59:20 +0200 Received: from ueamailgate02.uea.ac.uk (ueamailgate02.uea.ac.uk [139.222.131.185]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7LFx52t017059 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 21 Aug 2009 17:59:09 +0200 Received: from ueams01.uea.ac.uk (ueams01.uea.ac.uk [139.222.131.78]) by ueamailgate02.uea.ac.uk (8.13.1/8.13.1) with ESMTP id n7LFx5aI019559 for ; Fri, 21 Aug 2009 16:59:05 +0100 Received: from [139.222.114.191] by ueams01.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1MeWW9-0004X6-2q for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 21 Aug 2009 16:59:05 +0100 User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 References: <4A7921CF.5020803@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Canit-CHI2: 0.00 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, outgoing) X-CanItPRO-Stream: UEA:outgoing (inherits from UEA:default,base:default) X-Canit-Stats-ID: 28716164 - 25919955fafb X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.185 Message-ID: <4A8EC449.4040509@morningstar2.co.uk> Date: Fri, 21 Aug 2009 16:59:05 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4A7921CF.5020803@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 21 Aug 2009 16:02:16.0234 (UTC) FILETIME=[C0F768A0:01CA2278] Status: R X-Status: X-Keywords: X-UID: 5970 Hello all, One thing that hasn't been discussed thus far is the \DeclareDocumentTemplateInterface and \DeclareDocumentCommandImplementation idea. I realised I'd not kept these in xparse despite not really having a clear decision not to have them, so have put them back at present. The broad idea is that you can declare an interface then vary the implementation independently. Although I like the idea, this is limited to the case where both parts of the equation have the same number of arguments. Hence there is not totally free variation (for example, if I try to attach an interface with two arguments to an implementation needing three, I'm asking for trouble). Personally, I'm not sure we gain too much over simply being careful about the code that is sent to \DeclareDocumentCommand. In my examples, I've tended to keep things simple: \DeclareDocumentCommand \foo { s o m } { \IfBooleanTF #1 { \foo_internal_with_star:nn {#2} {#3} }{ \foo_internal_no_star:nn {#2} {#3} } } Even with \DeclareDocumentTemplateInterface, you still need to know that #1 is a true/false argument, so I'm not convinced there is really too much "uncoupling". So I'd be happier if we did not provide \DeclareDocumentTemplateInterface / \DeclareDocumentTemplateImplementation. How do others see this: I don't want to break things for other people, so I'm not going to make this change (deliberately) with out being sure it is agreed. -- Joseph Wright