The attempt to save a small (in today's view) amount of memory by overlaying the clist reader and writer parts of the device structure (with a 'skip' element hack) has caused problems and complicates the code in that, depending on what state the clist device is in, it must be cast as either a writer or a reader. Just having the reader elements AND the writer elements of a single 'clist' device would be so much clearer (and safer).