This is a wrapper around chan struct{}
that forgives some common mistakes
like sending on closed channels and closing cllosed channels, as well as
printing logs about when channels are created, waited on, sent to and closed.
This library makes debugging concurrent code a lot easier. IMHO. YMMV.