openUnix proto file
    | proto == [] || proto == "unix" = do
        fd <- socket AF_UNIX Stream defaultProtocol
        connect fd (SockAddrUnix file)
        return $ Just fd
    | otherwise = error "'protocol' should be empty or 'unix'"
openUnix proto file
    | proto == [] || proto == "unix" = do
        fd <- socket AF_UNIX Stream defaultProtocol
        connect fd (SockAddrUnix file)
        return $ Just fd
    | otherwise = error "'protocol' should be empty or 'unix'"
openUnix proto file
    | proto == [] || proto == "unix" = do
        fd <- socket AF_UNIX Stream defaultProtocol
        connect fd (SockAddrUnix file)
        return $ Just fd
    | otherwise = error "'protocol' should be empty or 'unix'"