> The main advantage with this is that the use of special > characters inside the keyval default will no longer mess up the parsing; > currently Yes this is of course a general problem with the latex [] syntax, but it is particularly bad here I agree, because if it goes wrong in the middle of that code then it _really_ goes wrong. There is a general rule of optional things using {} and mandatory things using [] but perhaps since the syntax for template declarations are so formalised anyway, the rules can be different here. Frank? Chris? > The difference between a template and an instance could be explained > better. ah documentation. Yes that could be improved. > in particular you need to do much more > processing of a template before you can use it than you need to do an > instance. Yes, in effect you have to make a (nameless) instance and run that. > practice works fine if n=1 or the <separator_i>'s cannot be appear in the > <name_i>'s, but that is not the case with the template code. there were earlier versions where instances (at least) were called as \csname rather than via a \UseInstance{xxx} syntax that could allow such characters. Also the number of parts in those names grew as features such as collections got added (and the template/instance code got re-redesigned) I agree that it should be cleaned up. Hopefully though those internal names can be changed without really affecting the main interface or packages using it. Thanks again for your detailed reading of the code. It is heartening to have someone say that it is basically a good idea, modulo some technical "features". There's always a danger that nobody likes it at all:-) David