From 7d1b5117a8e26e38286faa6ffcd3443884546a22 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Fri, 10 Apr 2015 07:23:51 +0100 Subject: [PATCH] export some crypto failable combinators --- Crypto/Error/Types.hs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Crypto/Error/Types.hs b/Crypto/Error/Types.hs index b350f1f..b0d82bf 100644 --- a/Crypto/Error/Types.hs +++ b/Crypto/Error/Types.hs @@ -11,6 +11,8 @@ module Crypto.Error.Types ( CryptoError(..) , CryptoFailable(..) + , throwCryptoErrorIO + , throwCryptoError ) where import qualified Control.Exception as E @@ -49,10 +51,15 @@ instance Monad CryptoFailable where CryptoPassed a -> m2 a CryptoFailed e -> CryptoFailed e -{- -throwCryptoError :: CryptoFailable a -> IO a -throwCryptoError = undefined +throwCryptoErrorIO :: CryptoFailable a -> IO a +throwCryptoErrorIO (CryptoFailed e) = E.throwIO e +throwCryptoErrorIO (CryptoPassed r) = return r +throwCryptoError :: CryptoFailable a -> a +throwCryptoError (CryptoFailed e) = E.throw e +throwCryptoError (CryptoPassed r) = r + +{- eitherCryptoError :: CryptoFailable a -> Either CryptoError a eitherCryptoError = undefined