I put together a little program demonstrating that you can do quite a few
things with a nil slice, map, or channel:
As you can see, pretty much all applicable operation are legal (and produce
the expected result). The two exceptions are writing to a nil map and
closing a nil channel. I assume those two are forbidden since they would
have to allocate memory.