X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=Data%2FEither.hs;h=0c5e15347883878eca0ee28534ecd727d1ef24b5;hb=7c0b04fd273621130062418bb764809c79488dd2;hp=9fed2d3d017b0d938b1060e27e344a6c08c38e31;hpb=789216806265506d3b4637b3b22eb5a46eb5f8f8;p=haskell-directory.git diff --git a/Data/Either.hs b/Data/Either.hs index 9fed2d3..0c5e153 100644 --- a/Data/Either.hs +++ b/Data/Either.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# OPTIONS_GHC -fno-implicit-prelude #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Either @@ -20,7 +20,6 @@ module Data.Either ( #ifdef __GLASGOW_HASKELL__ import GHC.Base -#endif {-| @@ -34,6 +33,10 @@ hold a correct value (mnemonic: \"right\" also means \"correct\"). -} data Either a b = Left a | Right b deriving (Eq, Ord ) +-- | Case analysis for the 'Either' type. +-- If the value is @'Left' a@, apply the first function to @a@; +-- if it is @'Right' b@, apply the second function to @b@. either :: (a -> c) -> (b -> c) -> Either a b -> c either f _ (Left x) = f x either _ g (Right y) = g y +#endif /* __GLASGOW_HASKELL__ */