> I wrote:
> > One feature which I think would be nice is a \newargumenttype macro,
> > analogous to \newcolumntype of the array package.
David writes:
> What new sorts of argument would you want. (this is a real question
> so I understand the functionality you are asking for)

Well three thoughts I had:
  Using characters other than * to indicate variant forms. I can imagine
  a command with two independent variants, accesed by \foo, \foo*, \foo+,
  and \foo*+
  If one wanted to make a `3d' picture mode, a triplet (x,y,z) argument
  might be useful.
  It is proposed that the float placement argument be in the form
  [hb|tp]; this might be a convienent form for other commands.
Here my inventivness begins to run-out.  Perhaps these are bad ideas;
too many argument types will only cause confusion for the user. But I
can imagine a \newargtype scheme being useful.

Other thing, making the default value of an optional command the same as
that of another command, as is done with \@dblarg, I can imagine
\DeclareDocumentCommand{\foo}{m O{#1}}{...} being useful.