Categories are difference from what I expected as well, I was thinking file types.
This is really nice though. I do like that directories and files are separate. You could probably hack this a bit and give you directories, git repos and files. I know that a git repo is just a directory, with special files, but it's surprisingly often that I find myself wondering if a directory is a git repo.
if (dflag)
prtype(dirs, "Directories");
if (fflag)
prtype(files, "Files");
if (lflag)
prtype(links, "Symlinks");
if (cflag)
prtype(chars, "Character special files");
if (bflag)
prtype(blocks, "Block special files");
if (pflag)
prtype(pipes, "Pipes");
if (mflag)
prtype(mults, "Multiplexed files");