difference-monoid-0.1.0.0

Copyright(c) Donnacha Oisín Kidney 2018
LicenseMIT
Maintainermail@doisinkidney.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Parity

Description

 

Synopsis

Documentation

newtype Parity a Source #

The Parity Comonad. It is left-adjunct to Diff.

Constructors

Parity 

Fields

Instances

Monad Parity Source # 

Methods

(>>=) :: Parity a -> (a -> Parity b) -> Parity b #

(>>) :: Parity a -> Parity b -> Parity b #

return :: a -> Parity a #

fail :: String -> Parity a #

Functor Parity Source # 

Methods

fmap :: (a -> b) -> Parity a -> Parity b #

(<$) :: a -> Parity b -> Parity a #

MonadFix Parity Source # 

Methods

mfix :: (a -> Parity a) -> Parity a #

Applicative Parity Source # 

Methods

pure :: a -> Parity a #

(<*>) :: Parity (a -> b) -> Parity a -> Parity b #

liftA2 :: (a -> b -> c) -> Parity a -> Parity b -> Parity c #

(*>) :: Parity a -> Parity b -> Parity b #

(<*) :: Parity a -> Parity b -> Parity a #

Foldable Parity Source # 

Methods

fold :: Monoid m => Parity m -> m #

foldMap :: Monoid m => (a -> m) -> Parity a -> m #

foldr :: (a -> b -> b) -> b -> Parity a -> b #

foldr' :: (a -> b -> b) -> b -> Parity a -> b #

foldl :: (b -> a -> b) -> b -> Parity a -> b #

foldl' :: (b -> a -> b) -> b -> Parity a -> b #

foldr1 :: (a -> a -> a) -> Parity a -> a #

foldl1 :: (a -> a -> a) -> Parity a -> a #

toList :: Parity a -> [a] #

null :: Parity a -> Bool #

length :: Parity a -> Int #

elem :: Eq a => a -> Parity a -> Bool #

maximum :: Ord a => Parity a -> a #

minimum :: Ord a => Parity a -> a #

sum :: Num a => Parity a -> a #

product :: Num a => Parity a -> a #

Traversable Parity Source # 

Methods

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

sequenceA :: Applicative f => Parity (f a) -> f (Parity a) #

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

sequence :: Monad m => Parity (m a) -> m (Parity a) #

Comonad Parity Source # 

Methods

extract :: Parity a -> a #

duplicate :: Parity a -> Parity (Parity a) #

extend :: (Parity a -> b) -> Parity a -> Parity b #

ComonadApply Parity Source # 

Methods

(<@>) :: Parity (a -> b) -> Parity a -> Parity b #

(@>) :: Parity a -> Parity b -> Parity b #

(<@) :: Parity a -> Parity b -> Parity a #

Traversable1 Parity Source # 

Methods

traverse1 :: Apply f => (a -> f b) -> Parity a -> f (Parity b) #

sequence1 :: Apply f => Parity (f b) -> f (Parity b) #

Foldable1 Parity Source # 

Methods

fold1 :: Semigroup m => Parity m -> m #

foldMap1 :: Semigroup m => (a -> m) -> Parity a -> m #

toNonEmpty :: Parity a -> NonEmpty a #

Apply Parity Source # 

Methods

(<.>) :: Parity (a -> b) -> Parity a -> Parity b #

(.>) :: Parity a -> Parity b -> Parity b #

(<.) :: Parity a -> Parity b -> Parity a #

liftF2 :: (a -> b -> c) -> Parity a -> Parity b -> Parity c #

Bind Parity Source # 

Methods

(>>-) :: Parity a -> (a -> Parity b) -> Parity b #

join :: Parity (Parity a) -> Parity a #

Extend Parity Source # 

Methods

duplicated :: Parity a -> Parity (Parity a) #

extended :: (Parity a -> b) -> Parity a -> Parity b #

Adjunction Parity Diff Source # 

Methods

unit :: a -> Diff (Parity a) #

counit :: Parity (Diff a) -> a #

leftAdjunct :: (Parity a -> b) -> a -> Diff b #

rightAdjunct :: (a -> Diff b) -> Parity a -> b #

ComonadEnv Odd Parity Source # 

Methods

ask :: Parity a -> Odd #

Bounded a => Bounded (Parity a) Source # 

Methods

minBound :: Parity a #

maxBound :: Parity a #

Eq a => Eq (Parity a) Source # 

Methods

(==) :: Parity a -> Parity a -> Bool #

(/=) :: Parity a -> Parity a -> Bool #

Ord a => Ord (Parity a) Source # 

Methods

compare :: Parity a -> Parity a -> Ordering #

(<) :: Parity a -> Parity a -> Bool #

(<=) :: Parity a -> Parity a -> Bool #

(>) :: Parity a -> Parity a -> Bool #

(>=) :: Parity a -> Parity a -> Bool #

max :: Parity a -> Parity a -> Parity a #

min :: Parity a -> Parity a -> Parity a #

Read a => Read (Parity a) Source # 
Show a => Show (Parity a) Source # 

Methods

showsPrec :: Int -> Parity a -> ShowS #

show :: Parity a -> String #

showList :: [Parity a] -> ShowS #

Ix a => Ix (Parity a) Source # 

Methods

range :: (Parity a, Parity a) -> [Parity a] #

index :: (Parity a, Parity a) -> Parity a -> Int #

unsafeIndex :: (Parity a, Parity a) -> Parity a -> Int

inRange :: (Parity a, Parity a) -> Parity a -> Bool #

rangeSize :: (Parity a, Parity a) -> Int #

unsafeRangeSize :: (Parity a, Parity a) -> Int

Semigroup a => Semigroup (Parity a) Source # 

Methods

(<>) :: Parity a -> Parity a -> Parity a #

sconcat :: NonEmpty (Parity a) -> Parity a #

stimes :: Integral b => b -> Parity a -> Parity a #

Monoid a => Monoid (Parity a) Source # 

Methods

mempty :: Parity a #

mappend :: Parity a -> Parity a -> Parity a #

mconcat :: [Parity a] -> Parity a #

NFData a => NFData (Parity a) Source # 

Methods

rnf :: Parity a -> () #