Reply to Benjamin, > T[] RemoveAt(T)(ref T[] dat, int i) > { > dat = dat[0..i] ~ dat[i+1..$]; > } > char[][] args > > args.RemoveAt(0); > > (D v1) > T RemoveAt(T)(ref T dat, int i) { return dat = dat[0..i] ~ dat[i+1..$]; }