-
Notifications
You must be signed in to change notification settings - Fork 201
Description
The network package is really a combination of four API's:
Network, which is deprecated.Network.Socket, which is a set of straight up low-level bindings to the basic C socket API.Network.Socket.ByteString, morally the same thing but bytestring based.Network.Socket.BSD- I don't know.
The latter provides additional functions not found in Network.Socket, presumably specific to the "BSD" sockets API. But everything is the BSD sockets API. Even Winsock on Windows is just a (relatively minor for our purposes) extension of it. In fact many of the functions exported by Network.BSD are also exported when on the Windows platform. So is the split in two modules of the BSD sockets API a distinction without a difference?
If so, I suggest we merge the two modules, for the sake of clarity. If not, then the purpose of Network.Socket.BSD should be clearly documented. It currently just says "defines Haskell bindings to network programming functionality provided by BSD Unix derivatives", which isn't too helpful given that the same could be said of Network.Socket.