A solution could be to have `newSocket` not actually create the socket until either `bind`or `connect`/`connectUnix` is called, and then detect the correct socket domain from the address given in each case.
Or instead of going through `newSocket` and `connect` one should just use `dial` to create the correct socket and connect to it.
