Trying to be smarter about closing channels: Ask the application not to close the Send channel, but let us do that from Close() instead.
Review all the *Client receiver methods in layer3.go. They shouldprobably either all be receivers, or none.Add a Reconnect() function.Eliminate as many uses of Generic as possible.