The [[socket]] module introduces a structure called a socket, whose purpose is to be able to dispatch a function call to an arbitrary number of handlers. Those handlers can be connected and disconnected from the socket dynamically.