Data.Profunctor.Counting
newtype Counting a b Source #
Constructors
Fields
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 #
liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Counting a c -> Counting b d -> Bool #
liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Counting a c -> Counting b d -> Ordering #
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 #
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 #
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 #
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 #
liftEq :: (a0 -> b -> Bool) -> Counting a a0 -> Counting a b -> Bool #
liftCompare :: (a0 -> b -> Ordering) -> Counting a a0 -> Counting a b -> Ordering #
contramap :: (a' -> a0) -> Counting a a0 -> Counting a a' #
(>$) :: b -> Counting a b -> Counting a a0 #
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) #
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] #
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 #
fmap :: (a0 -> b) -> Counting a a0 -> Counting a b #
(<$) :: a0 -> Counting a b -> Counting a a0 #
lose :: (a -> Void) -> Counting x a #
choose :: (a -> Either b c) -> Counting x b -> Counting x c -> Counting x a #
divide :: (a -> (b, c)) -> Counting x b -> Counting x c -> Counting x a #
conquer :: Counting x a #
readsPrec :: Int -> ReadS (Counting a b) #
readList :: ReadS [Counting a b] #
readPrec :: ReadPrec (Counting a b) #
readListPrec :: ReadPrec [Counting a b] #
showsPrec :: Int -> Counting a b -> ShowS #
show :: Counting a b -> String #
showList :: [Counting a b] -> ShowS #
(==) :: Counting a b -> Counting a b -> Bool #
(/=) :: Counting a b -> Counting a b -> Bool #
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 #