Safe Haskell | Safe |
---|---|

Language | Haskell2010 |

The strict variant of the standard Haskell `Either`

type and the
corresponding variants of the functions from Data.Either.

Note that the strict `Either`

type is not an applicative functor, and
therefore also no monad. The reasons are the same as the ones for the
strict `Maybe`

type, which are explained in Data.Maybe.Strict.

## Synopsis

# Documentation

The strict choice type.

#### Instances

Bifunctor Either Source # | |

Swap Either Source # | |

Defined in Data.Strict.Either | |

Assoc Either Source # | |

Bitraversable Either Source # | |

Defined in Data.Strict.Either bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Either a b -> f (Either c d) # | |

Bifoldable Either Source # | |

Eq2 Either Source # | |

Ord2 Either Source # | |

Defined in Data.Strict.Either | |

Read2 Either Source # | |

Defined in Data.Strict.Either liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Either a b) # liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Either a b] # liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Either a b) # liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Either a b] # | |

Show2 Either Source # | |

NFData2 Either Source # | |

Defined in Data.Strict.Either | |

Hashable2 Either Source # | |

Defined in Data.Strict.Either | |

Functor (Either a) Source # | |

Foldable (Either e) Source # | |

Defined in Data.Strict.Either fold :: Monoid m => Either e m -> m # foldMap :: Monoid m => (a -> m) -> Either e a -> m # foldMap' :: Monoid m => (a -> m) -> Either e a -> m # foldr :: (a -> b -> b) -> b -> Either e a -> b # foldr' :: (a -> b -> b) -> b -> Either e a -> b # foldl :: (b -> a -> b) -> b -> Either e a -> b # foldl' :: (b -> a -> b) -> b -> Either e a -> b # foldr1 :: (a -> a -> a) -> Either e a -> a # foldl1 :: (a -> a -> a) -> Either e a -> a # elem :: Eq a => a -> Either e a -> Bool # maximum :: Ord a => Either e a -> a # minimum :: Ord a => Either e a -> a # | |

Traversable (Either e) Source # | |

Eq a => Eq1 (Either a) Source # | |

Ord a => Ord1 (Either a) Source # | |

Defined in Data.Strict.Either | |

Read a => Read1 (Either a) Source # | |

Defined in Data.Strict.Either liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Either a a0) # liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Either a a0] # liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Either a a0) # liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Either a a0] # | |

Show a => Show1 (Either a) Source # | |

NFData a => NFData1 (Either a) Source # | |

Defined in Data.Strict.Either | |

Hashable a => Hashable1 (Either a) Source # | |

Defined in Data.Strict.Either | |

Generic1 (Either a :: Type -> Type) Source # | |

(Eq a, Eq b) => Eq (Either a b) Source # | |

(Data a, Data b) => Data (Either a b) Source # | |

Defined in Data.Strict.Either gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Either a b -> c (Either a b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Either a b) # toConstr :: Either a b -> Constr # dataTypeOf :: Either a b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Either a b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Either a b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Either a b -> Either a b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Either a b -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Either a b -> r # gmapQ :: (forall d. Data d => d -> u) -> Either a b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Either a b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Either a b -> m (Either a b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Either a b -> m (Either a b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Either a b -> m (Either a b) # | |

(Ord a, Ord b) => Ord (Either a b) Source # | |

(Read a, Read b) => Read (Either a b) Source # | |

(Show a, Show b) => Show (Either a b) Source # | |

Generic (Either a b) Source # | |

Semigroup (Either a b) Source # | |

(Binary a, Binary b) => Binary (Either a b) Source # | |

(NFData a, NFData b) => NFData (Either a b) Source # | |

Defined in Data.Strict.Either | |

(Hashable a, Hashable b) => Hashable (Either a b) Source # | |

Defined in Data.Strict.Either | |

Strict (Either a b) (Either a b) Source # | |

type Rep1 (Either a :: Type -> Type) Source # | |

Defined in Data.Strict.Either type Rep1 (Either a :: Type -> Type) = D1 ('MetaData "Either" "Data.Strict.Either" "strict-0.4.0.1-4K2DPtw797H2vluacZeYr9" 'False) (C1 ('MetaCons "Left" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "Right" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1)) | |

type Rep (Either a b) Source # | |

Defined in Data.Strict.Either type Rep (Either a b) = D1 ('MetaData "Either" "Data.Strict.Either" "strict-0.4.0.1-4K2DPtw797H2vluacZeYr9" 'False) (C1 ('MetaCons "Left" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "Right" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) |

partitionEithers :: [Either a b] -> ([a], [b]) Source #

Analogous to `partitionEithers`

in Data.Either.