summaryrefslogtreecommitdiff
path: root/libraries/base/Data/Either.hs
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2008-08-06 12:05:04 +0000
committerIan Lynagh <igloo@earth.li>2008-08-06 12:05:04 +0000
commitbc3938e68058b971df2554a11a41d8a81a6f939e (patch)
tree61f2a896b775609c7c18a05d23d6a3c9acc1c657 /libraries/base/Data/Either.hs
parent13fb5c0c68f66beb7e1f256849e006e7d2a56b34 (diff)
downloadhaskell-bc3938e68058b971df2554a11a41d8a81a6f939e.tar.gz
Move some bits around to stop Data.Either being in the base import knot
Diffstat (limited to 'libraries/base/Data/Either.hs')
-rw-r--r--libraries/base/Data/Either.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/libraries/base/Data/Either.hs b/libraries/base/Data/Either.hs
index cb71eaa8d5..956e6daedc 100644
--- a/libraries/base/Data/Either.hs
+++ b/libraries/base/Data/Either.hs
@@ -21,9 +21,13 @@ module Data.Either (
partitionEithers, -- :: [Either a b] -> ([a],[b])
) where
+#include "Typeable.h"
+
#ifdef __GLASGOW_HASKELL__
import GHC.Base
import GHC.Show
+import GHC.Read
+import Data.Typeable
{-
-- just for testing
@@ -40,7 +44,7 @@ either correct or an error; by convention, the 'Left' constructor is
used to hold an error value and the 'Right' constructor is used to
hold a correct value (mnemonic: \"right\" also means \"correct\").
-}
-data Either a b = Left a | Right b deriving (Eq, Ord, Show)
+data Either a b = Left a | Right b deriving (Eq, Ord, Read, Show)
-- | Case analysis for the 'Either' type.
-- If the value is @'Left' a@, apply the first function to @a@;
@@ -50,6 +54,8 @@ either f _ (Left x) = f x
either _ g (Right y) = g y
#endif /* __GLASGOW_HASKELL__ */
+INSTANCE_TYPEABLE2(Either,eitherTc,"Either")
+
-- | Extracts from a list of 'Either' all the 'Left' elements
-- All the 'Left' elements are extracted in order.