{-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE CApiFFI #-} module OpenSSL.ERR ( getError , peekError , errorString ) where import Foreign import Foreign.C foreign import capi unsafe "openssl/err.h ERR_get_error" getError :: IO CULong foreign import capi unsafe "openssl/err.h ERR_peek_error" peekError :: IO CULong foreign import capi unsafe "openssl/err.h ERR_error_string" _error_string :: CULong -> CString -> IO CString errorString :: CULong -> IO String errorString :: CULong -> IO String errorString CULong code = CULong -> CString -> IO CString _error_string CULong code CString forall a. Ptr a nullPtr IO CString -> (CString -> IO String) -> IO String forall a b. IO a -> (a -> IO b) -> IO b forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= CString -> IO String peekCString