From e9c812e4fdd58e9fc51919509ce7c0fccfb93625 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Mon, 1 Jun 2015 05:59:25 +0100 Subject: [PATCH] [error] make CryptoFailable an instance of Show and Eq if possible --- Crypto/Error/Types.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Crypto/Error/Types.hs b/Crypto/Error/Types.hs index 225660c..6845c43 100644 --- a/Crypto/Error/Types.hs +++ b/Crypto/Error/Types.hs @@ -49,6 +49,14 @@ data CryptoFailable a = CryptoPassed a | CryptoFailed CryptoError +instance Show a => Show (CryptoFailable a) where + show (CryptoPassed a) = "CryptoPassed " ++ show a + show (CryptoFailed err) = "CryptoFailed " ++ show err +instance Eq a => Eq (CryptoFailable a) where + (==) (CryptoPassed a) (CryptoPassed b) = a == b + (==) (CryptoFailed e1) (CryptoFailed e2) = e1 == e2 + (==) _ _ = False + instance Functor CryptoFailable where fmap f (CryptoPassed a) = CryptoPassed (f a) fmap _ (CryptoFailed r) = CryptoFailed r