Add isLeft/isRight
authorSimon Hengel <sol@typeful.net>
Tue, 25 Dec 2012 15:07:27 +0000 (16:07 +0100)
committerIan Lynagh <ian@well-typed.com>
Thu, 25 Apr 2013 21:18:35 +0000 (22:18 +0100)
Data/Either.hs

index 0fd862e..166c4f2 100644 (file)
@@ -23,6 +23,8 @@ module Data.Either (
    either,
    lefts,
    rights,
+   isLeft,
+   isRight,
    partitionEithers,
  ) where
 
@@ -97,6 +99,16 @@ partitionEithers = foldr (either left right) ([],[])
   left  a ~(l, r) = (a:l, r)
   right a ~(l, r) = (l, a:r)
 
+-- | Return `True` if the given value is a `Left`-value, `False` otherwise.
+isLeft :: Either a b -> Bool
+isLeft (Left  _) = True
+isLeft (Right _) = False
+
+-- | Return `True` if the given value is a `Right`-value, `False` otherwise.
+isRight :: Either a b -> Bool
+isRight (Left  _) = False
+isRight (Right _) = True
+
 {-
 {--------------------------------------------------------------------
   Testing