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
.
Documentation
The strict choice type.
Instances
Bifunctor Either Source # | |
Swap Either Source # | |
Assoc 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) Source # |
|
Bifoldable Either Source # | |
Defined in Data.Strict.Either |
|
Eq2 Either Source # | |
Ord2 Either Source # | |
Defined in Data.Strict.Either |
|
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) Source # liftReadList2 :: ( Int -> ReadS a) -> ReadS [a] -> ( Int -> ReadS b) -> ReadS [b] -> ReadS [ Either a b] Source # liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec ( Either a b) Source # liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [ Either a b] Source # |
|
Show2 Either Source # | |
Defined in Data.Strict.Either |
|
NFData2 Either Source # | |
Defined in Data.Strict.Either |
|
Hashable2 Either Source # | |
Functor ( Either a) Source # | |
Foldable ( Either e) Source # | |
Defined in Data.Strict.Either Methods fold :: Monoid m => Either e m -> m Source # foldMap :: Monoid m => (a -> m) -> Either e a -> m Source # foldMap' :: Monoid m => (a -> m) -> Either e a -> m Source # foldr :: (a -> b -> b) -> b -> Either e a -> b Source # foldr' :: (a -> b -> b) -> b -> Either e a -> b Source # foldl :: (b -> a -> b) -> b -> Either e a -> b Source # foldl' :: (b -> a -> b) -> b -> Either e a -> b Source # foldr1 :: (a -> a -> a) -> Either e a -> a Source # foldl1 :: (a -> a -> a) -> Either e a -> a Source # toList :: Either e a -> [a] Source # null :: Either e a -> Bool Source # length :: Either e a -> Int Source # elem :: Eq a => a -> Either e a -> Bool Source # maximum :: Ord a => Either e a -> a Source # minimum :: Ord a => Either e a -> a Source # |
|
Traversable ( Either e) Source # | |
Defined in Data.Strict.Either Methods traverse :: Applicative f => (a -> f b) -> Either e a -> f ( Either e b) Source # sequenceA :: Applicative f => Either e (f a) -> f ( Either e a) Source # mapM :: Monad m => (a -> m b) -> Either e a -> m ( Either e b) Source # sequence :: Monad m => Either e (m a) -> m ( Either e a) 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 Methods liftReadsPrec :: ( Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS ( Either a a0) Source # liftReadList :: ( Int -> ReadS a0) -> ReadS [a0] -> ReadS [ Either a a0] Source # liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec ( Either a a0) Source # liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [ Either a a0] Source # |
|
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 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) Source # gunfold :: ( forall b0 r. Data b0 => c (b0 -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Either a b) Source # toConstr :: Either a b -> Constr Source # dataTypeOf :: Either a b -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Either a b)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Either a b)) Source # gmapT :: ( forall b0. Data b0 => b0 -> b0) -> Either a b -> Either a b Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Either a b -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Either a b -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Either a b -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Either a b -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Either a b -> m ( Either a b) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Either a b -> m ( Either a b) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Either a b -> m ( Either a b) Source # |
|
Ord a, Ord b) => Ord ( Either a b) ( Source # | |
Defined in Data.Strict.Either Methods compare :: Either a b -> Either a b -> Ordering Source # (<) :: Either a b -> Either a b -> Bool Source # (<=) :: Either a b -> Either a b -> Bool Source # (>) :: Either a b -> Either a b -> Bool Source # (>=) :: Either a b -> Either a b -> Bool 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 # | |
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-AAOFHkm4mgeKztrEI4BKIe" '
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-AAOFHkm4mgeKztrEI4BKIe" '
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
.