>> Would it be possible to extend the specification of the
function?  The 
>> syntax that I have in mind is:
>> 
>> dummify(x,n) where (a) n=0 means no categories are dropped,
(b) n=1 means 
>> that the first category is dropped (default), and (c) n=2
means that the 
>> last category is dropped.
>
> Better still: dummify(x,n) drops the n-th category. When n=NA, no
categories 
> are dropped.
>
> I had started coding this, then I thought "Hold on a second,
this is 
> going to be another backward-incompatible change". Another one
(arma) is 
> in the planning stage, and obviously it'd be best to put them
together 
> (plus more that may arise). The question is when.

My suggestion that dummify(x) should be a synonym for dummify(x, 1) was intended as a way of avoiding a backward-incompatible change.  I assume that under your scheme dummify(x) would translate to dummify(x, n) with n=NA, which would be backward-incompatible. 

I acknowledge that your syntax is more general and has advantages.  My proposal reflected a desire to use the dummify inside functions when it is a little tedious, though not difficult, to work out the maximum value that can be dropped.  However, this can be got round by

        matrix xvals=values(x)
          scalar mxval=maxc(xvals)
          list dlist=dummify(x, mxval)

so I would be happy with your suggestion. 

Gordon