rather than writing it by hand in GHC.Show
#ifdef __GLASGOW_HASKELL__
import GHC.Base
+import GHC.Show
{-
-- just for testing
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 )
+data Either a b = Left a | Right b deriving (Eq, Ord, Show)
-- | Case analysis for the 'Either' type.
-- If the value is @'Left' a@, apply the first function to @a@;
import GHC.Base
import Data.Maybe
-import Data.Either
import GHC.List ( (!!), foldr1
#ifdef USE_REPORT_PRELUDE
, concatMap
= (showParen (p > appPrec) $
showString "Just " .
showsPrec appPrec1 x) s
-
-instance (Show a, Show b) => Show (Either a b) where
- showsPrec p e s =
- (showParen (p > appPrec) $
- case e of
- Left a -> showString "Left " . showsPrec appPrec1 a
- Right b -> showString "Right " . showsPrec appPrec1 b)
- s
\end{code}