The reason is, it should *only* be used on IReceivingSocket and needs NetMQSocket for the SocketHandle. It can easily be changed to just NetMQSocket and cast to IReceiveingSocket to check if it is infact a IReceiveingSocket of course, generics provides these elegantly.