Îõ³h$òÔ.      !"#$%&'()*+,-:(c) 2010-2014 Gregory Crosswhite, Chris Done, Edward Kmett BSD-styleekmett@gmail.com provisionalportable Safe-InferredveitherThe  function returns .! iff its argument is of the form / _.Using  Control.Lens:  áD has _Left isLeft (Left 12)TrueisLeft (Right 12)FalseeitherThe  function returns .! iff its argument is of the form 0 _.Using  Control.Lens:  áD 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 áD 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 áD x^?!_Right fromRight' (Right 12)12eitherThe Õ 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 1ð 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:  áD forOf_ _Left whenLeft (Left 12) print12eitherThe  function takes an 1ð 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:  áD forM_ Using  Control.Lens:  áD forOf_ _Right whenRight (Right 12) print12 either A synonym of . either A synonym of . either$Extract the left value or a default.   b áD 2 3 (4 b) fromLeft "hello" (Right 42)"hello"fromLeft "hello" (Left "world")"world" either%Extract the right value or a default.   b áD 2 (4 b) 3 !fromRight "hello" (Right "world")"world"fromRight "hello" (Left 42)"hello" eitherMaybe get the / side of an 1.   áD 2 5 (4 6) Using  Control.Lens:   áD preview _Left   x áD x^?_Left leftToMaybe (Left 12)Just 12leftToMaybe (Right 12)NothingeitherMaybe get the 0 side of an 1.  áD 2 (4 6) 5 Using  Control.Lens:  áD preview _Right  x áD x^?_Right rightToMaybe (Left 12)NothingrightToMaybe (Right 12)Just 12eitherMaybe produce a /, otherwise produce a 0.maybeToLeft "default" (Just 12)Left 12maybeToLeft "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.swapEither (Right 3)Left 3swapEither (Left "error") Right "error"   "(c) 2014 Chris Allen, Edward Kmett BSD-styleekmett@gmail.com provisionalportable Safe-InferredÔÙ¸either is 1 with a Left that is a 8either is isomorphic to 1'either3For two errors, this instance reports both of them.  9      !"#$%&'()*+,-./0123456789:89;89<89=8>?8>@8AB8ACDEF8>GÈ"either-5.0.2-A7aeJ5KdqyDhN0qttdNo2Data.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.Baseidconst GHC.MaybeJustNothing mtl-2.2.2Control.Monad.Error.Class throwErrorMonoid