aboutsummaryrefslogtreecommitdiffstats
path: root/src/Verismith/Result.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Verismith/Result.hs')
-rw-r--r--src/Verismith/Result.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Verismith/Result.hs b/src/Verismith/Result.hs
index d8efd2f..2ecb728 100644
--- a/src/Verismith/Result.hs
+++ b/src/Verismith/Result.hs
@@ -22,6 +22,8 @@ needed in "Verismith".
module Verismith.Result
( Result(..)
, ResultT(..)
+ , justPass
+ , justFail
, (<?>)
, annotate
)
@@ -42,6 +44,14 @@ data Result a b = Fail a
| Pass b
deriving (Eq, Show)
+justPass :: Result a b -> Maybe b
+justPass (Fail _) = Nothing
+justPass (Pass a) = Just a
+
+justFail :: Result a b -> Maybe a
+justFail (Pass _) = Nothing
+justFail (Fail a) = Just a
+
instance Semigroup (Result a b) where
Pass _ <> a = a
a <> _ = a