Skip to content

Document the purpose of Network.Socket.BSD or consider merging #201

@mboes

Description

@mboes

The network package is really a combination of four API's:

  1. Network, which is deprecated.
  2. Network.Socket, which is a set of straight up low-level bindings to the basic C socket API.
  3. Network.Socket.ByteString, morally the same thing but bytestring based.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions