cartesian-profunctors
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.Exhaust

Documentation

data Exhaust a b Source #

Constructors

Absurd (a -> Void) 
Exhaust ((b -> Bool) -> b) 

Instances

Instances details
Cartesian Exhaust Source # 
Instance details

Defined in Data.Profunctor.Exhaust

Methods

proUnit :: Exhaust a () Source #

proProduct :: (a -> (a1, a2)) -> ((b1, b2) -> b) -> Exhaust a1 b1 -> Exhaust a2 b2 -> Exhaust a b Source #

(***) :: Exhaust a b -> Exhaust a' b' -> Exhaust (a, a') (b, b') Source #

(&&&) :: Exhaust a b -> Exhaust a b' -> Exhaust a (b, b') Source #

proPower :: forall (n :: Nat) a b. KnownNat n => Exhaust a b -> Exhaust (Finite n -> a) (Finite n -> b) Source #

Cocartesian Exhaust Source # 
Instance details

Defined in Data.Profunctor.Exhaust

Methods

proEmpty :: Exhaust Void b Source #

proSum :: (a -> Either a1 a2) -> (Either b1 b2 -> b) -> Exhaust a1 b1 -> Exhaust a2 b2 -> Exhaust a b Source #

(+++) :: Exhaust a b -> Exhaust a' b' -> Exhaust (Either a a') (Either b b') Source #

(|||) :: Exhaust a b -> Exhaust a' b -> Exhaust (Either a a') b Source #

proTimes :: forall (n :: Nat) a b. KnownNat n => Exhaust a b -> Exhaust (Finite n, a) (Finite n, b) Source #

Profunctor Exhaust Source # 
Instance details

Defined in Data.Profunctor.Exhaust

Methods

dimap :: (a -> b) -> (c -> d) -> Exhaust b c -> Exhaust a d #

lmap :: (a -> b) -> Exhaust b c -> Exhaust a c #

rmap :: (b -> c) -> Exhaust a b -> Exhaust a c #

(#.) :: forall a b c q. Coercible c b => q b c -> Exhaust a b -> Exhaust a c #

(.#) :: forall a b c q. Coercible b a => Exhaust b c -> q a b -> Exhaust a c #

Functor (Exhaust a) Source # 
Instance details

Defined in Data.Profunctor.Exhaust

Methods

fmap :: (a0 -> b) -> Exhaust a a0 -> Exhaust a b #

(<$) :: a0 -> Exhaust a b -> Exhaust a a0 #