cartesian-profunctors
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.Counting

Documentation

newtype Counting a b Source #

Constructors

Counting 

Fields

Instances

Instances details
Bifunctor Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

bimap :: (a -> b) -> (c -> d) -> Counting a c -> Counting b d #

first :: (a -> b) -> Counting a c -> Counting b c #

second :: (b -> c) -> Counting a b -> Counting a c #

Eq2 Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Counting a c -> Counting b d -> Bool #

Ord2 Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Counting a c -> Counting b d -> Ordering #

Cartesian Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

proUnit :: Counting a () Source #

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

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

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

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

Cocartesian Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

proEmpty :: Counting Void b Source #

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

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

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

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

Profunctor Counting Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

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

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

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

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

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

Foldable (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

fold :: Monoid m => Counting a m -> m #

foldMap :: Monoid m => (a0 -> m) -> Counting a a0 -> m #

foldMap' :: Monoid m => (a0 -> m) -> Counting a a0 -> m #

foldr :: (a0 -> b -> b) -> b -> Counting a a0 -> b #

foldr' :: (a0 -> b -> b) -> b -> Counting a a0 -> b #

foldl :: (b -> a0 -> b) -> b -> Counting a a0 -> b #

foldl' :: (b -> a0 -> b) -> b -> Counting a a0 -> b #

foldr1 :: (a0 -> a0 -> a0) -> Counting a a0 -> a0 #

foldl1 :: (a0 -> a0 -> a0) -> Counting a a0 -> a0 #

toList :: Counting a a0 -> [a0] #

null :: Counting a a0 -> Bool #

length :: Counting a a0 -> Int #

elem :: Eq a0 => a0 -> Counting a a0 -> Bool #

maximum :: Ord a0 => Counting a a0 -> a0 #

minimum :: Ord a0 => Counting a a0 -> a0 #

sum :: Num a0 => Counting a a0 -> a0 #

product :: Num a0 => Counting a a0 -> a0 #

Eq1 (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

liftEq :: (a0 -> b -> Bool) -> Counting a a0 -> Counting a b -> Bool #

Ord1 (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

liftCompare :: (a0 -> b -> Ordering) -> Counting a a0 -> Counting a b -> Ordering #

Contravariant (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

contramap :: (a' -> a0) -> Counting a a0 -> Counting a a' #

(>$) :: b -> Counting a b -> Counting a a0 #

Traversable (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

traverse :: Applicative f => (a0 -> f b) -> Counting a a0 -> f (Counting a b) #

sequenceA :: Applicative f => Counting a (f a0) -> f (Counting a a0) #

mapM :: Monad m => (a0 -> m b) -> Counting a a0 -> m (Counting a b) #

sequence :: Monad m => Counting a (m a0) -> m (Counting a a0) #

Alternative (Counting x) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

empty :: Counting x a #

(<|>) :: Counting x a -> Counting x a -> Counting x a #

some :: Counting x a -> Counting x [a] #

many :: Counting x a -> Counting x [a] #

Applicative (Counting x) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

pure :: a -> Counting x a #

(<*>) :: Counting x (a -> b) -> Counting x a -> Counting x b #

liftA2 :: (a -> b -> c) -> Counting x a -> Counting x b -> Counting x c #

(*>) :: Counting x a -> Counting x b -> Counting x b #

(<*) :: Counting x a -> Counting x b -> Counting x a #

Functor (Counting a) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

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

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

Decidable (Counting x) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

lose :: (a -> Void) -> Counting x a #

choose :: (a -> Either b c) -> Counting x b -> Counting x c -> Counting x a #

Divisible (Counting x) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

divide :: (a -> (b, c)) -> Counting x b -> Counting x c -> Counting x a #

conquer :: Counting x a #

Read (Counting a b) Source # 
Instance details

Defined in Data.Profunctor.Counting

Show (Counting a b) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

showsPrec :: Int -> Counting a b -> ShowS #

show :: Counting a b -> String #

showList :: [Counting a b] -> ShowS #

Eq (Counting a b) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

(==) :: Counting a b -> Counting a b -> Bool #

(/=) :: Counting a b -> Counting a b -> Bool #

Ord (Counting a b) Source # 
Instance details

Defined in Data.Profunctor.Counting

Methods

compare :: Counting a b -> Counting a b -> Ordering #

(<) :: Counting a b -> Counting a b -> Bool #

(<=) :: Counting a b -> Counting a b -> Bool #

(>) :: Counting a b -> Counting a b -> Bool #

(>=) :: Counting a b -> Counting a b -> Bool #

max :: Counting a b -> Counting a b -> Counting a b #

min :: Counting a b -> Counting a b -> Counting a b #