makeContext :: HostName -> PortNumber -> IO Context
makeContext hostname port = do
  prg <- AESCtr.makeSystem
  he   <- getHostByName hostname
  sock <- socket AF_INET Stream defaultProtocol
  let sockaddr = SockAddrInet port (head $ hostAddresses he)
  catch (connect sock sockaddr) (\(e :: SomeException) -> error (show e))
  contextNew sock (tlsParams hostname) prg
makeContext :: HostName -> PortNumber -> IO Context
makeContext hostname port = do
  prg <- AESCtr.makeSystem
  he   <- getHostByName hostname
  sock <- socket AF_INET Stream defaultProtocol
  let sockaddr = SockAddrInet port (head $ hostAddresses he)
  catch (connect sock sockaddr) (\(e :: SomeException) -> error (show e))
  contextNew sock (tlsParams hostname) prg
makeContext hostname port = do
  prg <- AESCtr.makeSystem
  he   <- getHostByName hostname
  sock <- socket AF_INET Stream defaultProtocol
  let sockaddr = SockAddrInet port (head $ hostAddresses he)
  catch (connect sock sockaddr) (\(e :: SomeException) -> error (show e))
  contextNew sock (tlsParams hostname) prg