-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Typed sockets -- -- Please see README.md @package linear-socket @version 0.3.3.3 module Network.Typed.Socket data SSocket (f :: SocketFamily) (p :: SocketProtocol) (s :: SocketStatus) (sh :: ShutdownStatus) data SocketFamily Unix :: SocketFamily InetV4 :: SocketFamily InetV6 :: SocketFamily data SocketProtocol Tcp :: SocketProtocol Udp :: SocketProtocol data SockAddr (f :: SocketFamily) [SockAddrInet] :: !PortNumber -> !HostAddress -> SockAddr 'InetV4 [SockAddrInet6] :: PortNumber -> !FlowInfo -> !HostAddress6 -> !ScopeID -> SockAddr 'InetV6 [SockAddrUnix] :: ![Char] -> SockAddr 'Unix data SocketStatus Unconnected :: SocketStatus Bound :: SocketStatus Listening :: SocketStatus Connected :: SocketStatus Closed :: SocketStatus data ShutdownStatus Available :: ShutdownStatus CannotReceive :: ShutdownStatus CannotSend :: ShutdownStatus CannotSendOrReceive :: ShutdownStatus socket :: forall f p. (SockFam f, SockProto p) => IO (SSocket f p 'Unconnected 'Available) tcp4Socket :: IO (SSocket 'InetV4 'Tcp 'Unconnected 'Available) tcp6Socket :: IO (SSocket 'InetV6 'Tcp 'Unconnected 'Available) tcpUnixSocket :: IO (SSocket 'Unix 'Tcp 'Unconnected 'Available) udp4Socket :: IO (SSocket 'InetV4 'Udp 'Unconnected 'Available) udp6Socket :: IO (SSocket 'InetV6 'Udp 'Unconnected 'Available) udpUnixSocket :: IO (SSocket 'Unix 'Udp 'Unconnected 'Available) connect :: SockAddr f -> SSocket f 'Tcp 'Unconnected sh -> IO (SSocket f 'Tcp 'Connected 'Available) bind :: SockAddr f -> SSocket f p 'Unconnected sh -> IO (SSocket f p 'Bound sh) accept :: SSocket f 'Tcp 'Listening sh -> IO (SSocket f 'Tcp 'Connected sh, SockAddr) listen :: Int -> SSocket f 'Tcp 'Bound sh -> IO (SSocket f 'Tcp 'Listening sh) send :: CanSend sh ~ 'True => ByteString -> SSocket f 'Tcp 'Connected sh -> IO Int sendTo :: CanSend sh ~ 'True => ByteString -> SockAddr f -> SSocket f 'Udp 'Unconnected sh -> IO Int recv :: CanReceive sh ~ 'True => Int -> SSocket f 'Tcp 'Connected sh -> IO ByteString recvFrom :: (CanReceive sh ~ 'True, SockFam f) => Int -> SSocket f 'Udp 'Unconnected sh -> IO (ByteString, SockAddr f) close :: Closeable s ~ 'True => SSocket f p s sh -> IO (SSocket f p 'Closed sh) shutdownSend :: CanShutdownSend sh s ~ 'True => SSocket f p s sh -> IO (SSocket f p s (Shutdown sh 'ShutdownSend)) shutdownReceive :: CanShutdownReceive sh s ~ 'True => SSocket f p s sh -> IO (SSocket f p s (Shutdown sh 'ShutdownReceive)) shutdownBoth :: CanShutdownBoth sh s ~ 'True => SSocket f p s sh -> IO (SSocket f p s (Shutdown sh 'ShutdownBoth)) withSocket :: (SockFam f, SockProto p) => (SSocket f p 'Unconnected 'Available -> IO a) -> IO a withTcp4Socket :: (SSocket 'InetV4 'Tcp 'Unconnected 'Available -> IO a) -> IO a withTcp6Socket :: (SSocket 'InetV6 'Tcp 'Unconnected 'Available -> IO a) -> IO a withTcpUnixSocket :: (SSocket 'Unix 'Tcp 'Unconnected 'Available -> IO a) -> IO a withUdp4Socket :: (SSocket 'InetV4 'Udp 'Unconnected 'Available -> IO a) -> IO a withUdp6Socket :: (SSocket 'InetV6 'Udp 'Unconnected 'Available -> IO a) -> IO a withUdpUnixSocket :: (SSocket 'Unix 'Udp 'Unconnected 'Available -> IO a) -> IO a setSocketOption :: SocketOption -> Int -> SSocket f p s sh -> IO (SSocket f p s sh) makePortReusable :: SSocket f p s sh -> IO (SSocket f p s sh) makeAddrReusable :: SSocket f p s sh -> IO (SSocket f p s sh) instance Network.Typed.Socket.SockProto 'Network.Typed.Socket.Tcp instance Network.Typed.Socket.SockProto 'Network.Typed.Socket.Udp instance Network.Typed.Socket.SockFam 'Network.Typed.Socket.Unix instance Network.Typed.Socket.SockFam 'Network.Typed.Socket.InetV4 instance Network.Typed.Socket.SockFam 'Network.Typed.Socket.InetV6