There should be a way for a handler to declare that it doesn't have any output to insert into the list. no_output gives an explicit, safe way to do this. Its actually in there to prevent hacks.

For example, we can't check for NULL, or character(0), etc, because sometimes the value itself could be NULL, and if we always want the value because we want to be able to reproduce the results of the evaluation, we need to be able to differentiate between NULL and nothing. 

By "declaring a class" (I don't really like to use S3 classes, as they're unsafe in a lot of ways, but its not my package and the rest of it is based on S3, so I used S3 as well), we give handler authors a way to communicate there is actually nothing to put into the list, instead of that there is something to put in the list, and that something is NULL.

We also need to be reasonably sure that it won't collide with any existing class, thus the ___ on both ends.