úÎ!>ø;Ò.      !"#$%&'()*+,-:(c) 2010-2014 Gregory Crosswhite, Chris Done, Edward Kmett BSD-styleekmett@gmail.com provisionalportableSafe8:eitherThe  function returns .! iff its argument is of the form / _.Using  Control.Lens:  "a has _Left isLeft (Left 12)TrueisLeft (Right 12)FalseeitherThe  function returns .! iff its argument is of the form 0 _.Using  Control.Lens:  "a has _Right isRight (Left 12)FalseisRight (Right 12)TrueeitherExtracts the element out of a /5 and throws an error if its argument take the form 0 _.Using  Control.Lens:  x "a x^?!_Left fromLeft' (Left 12)12eitherExtracts the element out of a 04 and throws an error if its argument take the form / _.Using  Control.Lens:  x "a x^?!_Right fromRight' (Right 12)12eitherThe U function takes two functions and applies the first if iff the value takes the form / _, and the second if the value takes the form 0 _.Using Data.Bifunctor:  = bimap Using  Control.Arrow:  = () mapBoth (*2) (*3) (Left 4)Left 8mapBoth (*2) (*3) (Right 4)Right 12eitherThe [ function takes a function and applies it to an Either value iff the value takes the form / _.Using Data.Bifunctor:  = first Using  Control.Arrow:  = () Using  Control.Lens:  = over _Left mapLeft (*2) (Left 4)Left 8mapLeft (*2) (Right "hello") Right "hello"eitherThe [ function takes a function and applies it to an Either value iff the value takes the form 0 _.Using Data.Bifunctor:  = second Using  Control.Arrow:  = () Using  Control.Lens:  = over _Right mapRight (*2) (Left "hello") Left "hello"mapRight (*2) (Right 4)Right 8eitherThe  function takes an 1p value and a function which returns a monad. The monad is only executed when the given argument takes the form / _, otherwise it does nothing.Using  Control.Lens:  "a forOf_ _Left whenLeft (Left 12) print12eitherThe  function takes an 1p value and a function which returns a monad. The monad is only executed when the given argument takes the form 0 _, otherwise it does nothing.Using  Data.Foldable:  "a forM_ Using  Control.Lens:  "a forOf_ _Right whenRight (Right 12) print12 either A synonym of . either A synonym of . either$Extract the left value or a default.   b "a 2 3 (4 b) fromLeft "hello" (Right 42)"hello"fromLeft "hello" (Left "world")"world" either%Extract the right value or a default.   b "a 2 (4 b) 3 !fromRight "hello" (Right "world")"world"fromRight "hello" (Left 42)"hello" eitherMaybe get the / side of an 1.   "a 2 5 (4 6) Using  Control.Lens:   "a preview _Left   x "a x^?_Left leftToMaybe (Left 12)Just 12leftToMaybe (Right 12)NothingeitherMaybe get the 0 side of an 1.  "a 2 (4 6) 5 Using  Control.Lens:  "a preview _Right  x "a x^?_Right rightToMaybe (Left 12)NothingrightToMaybe (Right 12)Just 12eitherMaybe produce a /, otherwise produce a 0. maybeToRight "default" (Just 12)Left 12maybeToRight "default" NothingRight "default"eitherMaybe produce a 0, otherwise produce a /. maybeToRight "default" (Just 12)Right 12maybeToRight "default" NothingLeft "default"either Generalize Either e as MonadError e m.If the argument has form Left e), an error is produced in the monad via 7. Otherwise, the Right a part is forwarded.either Swap the / and 0 sides of an 1. M>>> swapEither (Right 3) Left 3 >>> swapEither (Left "error") Right "error"    "(c) 2014 Chris Allen, Edward Kmett BSD-styleekmett@gmail.com provisionalportableSafeQV;neither is 1 with a Left that is a 8either is isomorphic to 1  9      !"#$%&'()*+,-./0123456789:89;89<89=8>?8>@8>A8>BCDE8>FG#either-5.0.1-CjvDTkEjmi8JlcvMFToFvCData.Either.CombinatorsData.Either.Validation Control.Arrow+++leftrightisLeftisRight fromLeft' fromRight'mapBothmapLeftmapRightwhenLeft whenRight unlessLeft unlessRightfromLeft fromRight leftToMaybe rightToMaybe maybeToLeft maybeToRight eitherToError swapEither ValidationFailureSuccess_Failure_SuccessvalidationToEithereitherToValidation _Validationvapapmvapmealt$fMonoidValidation$fSemigroupValidation$fBitraversableValidation$fBifoldableValidation$fBifunctorValidation$fTraversableValidation$fFoldableValidation$fAlternativeValidation$fAltValidation$fApplicativeValidation$fApplyValidation$fFunctorValidation$fEqValidation$fOrdValidation$fShowValidationghc-prim GHC.TypesTruebase Data.EitherLeftRightEithereitherGHC.BaseidconstJustNothing mtl-2.2.2Control.Monad.Error.Class throwErrorMonoid