Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Data.Strict.Either
Description
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
Assoc Either Source # | |
Swap Either Source # | |
Defined in Data.Strict.Either | |
Bifoldable Either Source # | |
Bifunctor Either Source # | |
Bitraversable Either Source # | |
Defined in Data.Strict.Either Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Either a b -> f (Either c d) | |
Eq2 Either Source # | |
Defined in Data.Strict.Either | |
Ord2 Either Source # | |
Defined in Data.Strict.Either Methods liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Either a c -> Either b d -> Ordering | |
Read2 Either Source # | |
Defined in Data.Strict.Either Methods 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 # | |
Defined in Data.Strict.Either Methods liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Either a b -> ShowS liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Either a b] -> ShowS | |
NFData2 Either Source # | |
Defined in Data.Strict.Either | |
Hashable2 Either Source # | |
Defined in Data.Strict.Either Methods liftHashWithSalt2 :: (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> Either a b -> Int | |
Generic1 (Either a :: Type -> Type) Source # | |
Foldable (Either e) Source # | |
Defined in Data.Strict.Either Methods 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 | |
Eq a => Eq1 (Either a) Source # | |
Defined in Data.Strict.Either | |
Ord a => Ord1 (Either a) Source # | |
Defined in Data.Strict.Either Methods liftCompare :: (a0 -> b -> Ordering) -> Either a a0 -> Either a b -> Ordering | |
Read a => Read1 (Either a) Source # | |
Defined in Data.Strict.Either Methods 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 # | |
Defined in Data.Strict.Either Methods liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> Either a a0 -> ShowS liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Either a a0] -> ShowS | |
Traversable (Either e) Source # | |
Functor (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 Methods liftHashWithSalt :: (Int -> a0 -> Int) -> Int -> Either a a0 -> Int | |
(Data a, Data b) => Data (Either a b) Source # | |
Defined in Data.Strict.Either Methods 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) | |
Semigroup (Either a b) Source # | |
Generic (Either a b) Source # | |
(Read a, Read b) => Read (Either a b) Source # | |
Defined in Data.Strict.Either | |
(Show a, Show b) => Show (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 | |
(Eq a, Eq b) => Eq (Either a b) Source # | |
(Ord a, Ord b) => Ord (Either a b) Source # | |
(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.5-1betvGXL8l9HQQ8laje51C" '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.5-1betvGXL8l9HQQ8laje51C" '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.