these-1.1.1.1: An either-or-both data type.
Safe Haskell Safe
Language Haskell2010

Data.Functor.These

Documentation

data These1 f g a Source #

Constructors

This1 (f a)
That1 (g a)
These1 (f a) (g a)

Instances

Instances details
Generic1 ( These1 f g :: Type -> Type ) Source #
Instance details

Defined in Data.Functor.These

Associated Types

type Rep1 ( These1 f g) :: k -> Type Source #

Methods

from1 :: forall (a :: k). These1 f g a -> Rep1 ( These1 f g) a Source #

to1 :: forall (a :: k). Rep1 ( These1 f g) a -> These1 f g a Source #

( Functor f, Functor g) => Functor ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

Methods

fmap :: (a -> b) -> These1 f g a -> These1 f g b Source #

(<$) :: a -> These1 f g b -> These1 f g a Source #

( Foldable f, Foldable g) => Foldable ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

Methods

fold :: Monoid m => These1 f g m -> m Source #

foldMap :: Monoid m => (a -> m) -> These1 f g a -> m Source #

foldMap' :: Monoid m => (a -> m) -> These1 f g a -> m Source #

foldr :: (a -> b -> b) -> b -> These1 f g a -> b Source #

foldr' :: (a -> b -> b) -> b -> These1 f g a -> b Source #

foldl :: (b -> a -> b) -> b -> These1 f g a -> b Source #

foldl' :: (b -> a -> b) -> b -> These1 f g a -> b Source #

foldr1 :: (a -> a -> a) -> These1 f g a -> a Source #

foldl1 :: (a -> a -> a) -> These1 f g a -> a Source #

toList :: These1 f g a -> [a] Source #

null :: These1 f g a -> Bool Source #

length :: These1 f g a -> Int Source #

elem :: Eq a => a -> These1 f g a -> Bool Source #

maximum :: Ord a => These1 f g a -> a Source #

minimum :: Ord a => These1 f g a -> a Source #

sum :: Num a => These1 f g a -> a Source #

product :: Num a => These1 f g a -> a Source #

( Traversable f, Traversable g) => Traversable ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

Methods

traverse :: Applicative f0 => (a -> f0 b) -> These1 f g a -> f0 ( These1 f g b) Source #

sequenceA :: Applicative f0 => These1 f g (f0 a) -> f0 ( These1 f g a) Source #

mapM :: Monad m => (a -> m b) -> These1 f g a -> m ( These1 f g b) Source #

sequence :: Monad m => These1 f g (m a) -> m ( These1 f g a) Source #

( Eq1 f, Eq1 g) => Eq1 ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

Methods

liftEq :: (a -> b -> Bool ) -> These1 f g a -> These1 f g b -> Bool Source #

( Ord1 f, Ord1 g) => Ord1 ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

( Read1 f, Read1 g) => Read1 ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

( Show1 f, Show1 g) => Show1 ( These1 f g) Source #
Instance details

Defined in Data.Functor.These

( NFData1 f, NFData1 g) => NFData1 ( These1 f g) Source #

This instance is available only with deepseq >= 1.4.3.0

Instance details

Defined in Data.Functor.These

Methods

liftRnf :: (a -> ()) -> These1 f g a -> () Source #

( Eq1 f, Eq1 g, Eq a) => Eq ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

( Typeable f, Typeable g, Typeable a, Data (f a), Data (g a)) => Data ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g0. g0 -> c g0) -> These1 f g a -> c ( These1 f g a) Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( These1 f g a) Source #

toConstr :: These1 f g a -> Constr Source #

dataTypeOf :: These1 f g a -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( These1 f g a)) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( These1 f g a)) Source #

gmapT :: ( forall b. Data b => b -> b) -> These1 f g a -> These1 f g a Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> These1 f g a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> These1 f g a -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> These1 f g a -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> These1 f g a -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> These1 f g a -> m ( These1 f g a) Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> These1 f g a -> m ( These1 f g a) Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> These1 f g a -> m ( These1 f g a) Source #

( Ord1 f, Ord1 g, Ord a) => Ord ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

( Read1 f, Read1 g, Read a) => Read ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

( Show1 f, Show1 g, Show a) => Show ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

Generic ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These

Associated Types

type Rep ( These1 f g a) :: Type -> Type Source #

( NFData1 f, NFData1 g, NFData a) => NFData ( These1 f g a) Source #

This instance is available only with deepseq >= 1.4.3.0

Instance details

Defined in Data.Functor.These

Methods

rnf :: These1 f g a -> () Source #

type Rep1 ( These1 f g :: Type -> Type ) Source #
Instance details

Defined in Data.Functor.These

type Rep ( These1 f g a) Source #
Instance details

Defined in Data.Functor.These