connections-0.0.3: Partial orders, Galois connections, and lattices.

Safe HaskellSafe
LanguageHaskell2010

Data.Semigroup.Meet

Contents

Synopsis

Documentation

type (-) (g :: k1 -> k) (f :: k -> k2) (a :: k1) = f (g a) infixr 1 #

Hyphenation operator.

newtype Meet a Source #

Constructors

Meet 

Fields

Instances
Functor Meet Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

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

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

Applicative Meet Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

pure :: a -> Meet a #

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

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

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

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

Eq a => Eq (Meet a) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

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

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

Ord a => Ord (Meet a) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

compare :: Meet a -> Meet a -> Ordering #

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

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

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

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

max :: Meet a -> Meet a -> Meet a #

min :: Meet a -> Meet a -> Meet a #

Show a => Show (Meet a) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

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

show :: Meet a -> String #

showList :: [Meet a] -> ShowS #

Generic (Meet a) Source # 
Instance details

Defined in Data.Semigroup.Meet

Associated Types

type Rep (Meet a) :: Type -> Type #

Methods

from :: Meet a -> Rep (Meet a) x #

to :: Rep (Meet a) x -> Meet a #

Semigroup (Meet Bool) Source # 
Instance details

Defined in Data.Semigroup.Meet

(Meet - Semigroup) b => Semigroup (Meet (a -> b)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (a -> b) -> Meet (a -> b) -> Meet (a -> b) #

sconcat :: NonEmpty (Meet (a -> b)) -> Meet (a -> b) #

stimes :: Integral b0 => b0 -> Meet (a -> b) -> Meet (a -> b) #

Semigroup (Meet Int) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet Int -> Meet Int -> Meet Int #

sconcat :: NonEmpty (Meet Int) -> Meet Int #

stimes :: Integral b => b -> Meet Int -> Meet Int #

Semigroup (Meet Int8) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Int16) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Int32) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Int64) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Integer) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Natural) Source # 
Instance details

Defined in Data.Semigroup.Meet

(Meet - Semigroup) a => Semigroup (Meet (Maybe a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Maybe a) -> Meet (Maybe a) -> Meet (Maybe a) #

sconcat :: NonEmpty (Meet (Maybe a)) -> Meet (Maybe a) #

stimes :: Integral b => b -> Meet (Maybe a) -> Meet (Maybe a) #

Semigroup (Meet (Ratio Natural)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Rational) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Word) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Word8) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Word16) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Word32) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Word64) Source # 
Instance details

Defined in Data.Semigroup.Meet

((Meet - Semigroup) a, (Meet - Semigroup) b) => Semigroup (Meet (Either a b)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Either a b) -> Meet (Either a b) -> Meet (Either a b) #

sconcat :: NonEmpty (Meet (Either a b)) -> Meet (Either a b) #

stimes :: Integral b0 => b0 -> Meet (Either a b) -> Meet (Either a b) #

Semigroup (Meet ()) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet () -> Meet () -> Meet () #

sconcat :: NonEmpty (Meet ()) -> Meet () #

stimes :: Integral b => b -> Meet () -> Meet () #

((Meet - Semigroup) a, (Meet - Semigroup) b) => Semigroup (Meet (a, b)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (a, b) -> Meet (a, b) -> Meet (a, b) #

sconcat :: NonEmpty (Meet (a, b)) -> Meet (a, b) #

stimes :: Integral b0 => b0 -> Meet (a, b) -> Meet (a, b) #

Semigroup (Meet Uni) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet Uni -> Meet Uni -> Meet Uni #

sconcat :: NonEmpty (Meet Uni) -> Meet Uni #

stimes :: Integral b => b -> Meet Uni -> Meet Uni #

Semigroup (Meet Deci) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Centi) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Milli) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Micro) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Nano) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Meet Pico) Source # 
Instance details

Defined in Data.Semigroup.Meet

Semigroup (Min a) => Semigroup (Meet (Min a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Min a) -> Meet (Min a) -> Meet (Min a) #

sconcat :: NonEmpty (Meet (Min a)) -> Meet (Min a) #

stimes :: Integral b => b -> Meet (Min a) -> Meet (Min a) #

(Meet - Semigroup) a => Semigroup (Meet (Max a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Max a) -> Meet (Max a) -> Meet (Max a) #

sconcat :: NonEmpty (Meet (Max a)) -> Meet (Max a) #

stimes :: Integral b => b -> Meet (Max a) -> Meet (Max a) #

(Join - Semigroup) a => Semigroup (Meet (Down a)) Source # 
Instance details

Defined in Data.Semigroup.Join

Methods

(<>) :: Meet (Down a) -> Meet (Down a) -> Meet (Down a) #

sconcat :: NonEmpty (Meet (Down a)) -> Meet (Down a) #

stimes :: Integral b => b -> Meet (Down a) -> Meet (Down a) #

(Meet - Semigroup) a => Semigroup (Meet (IntMap a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (IntMap a) -> Meet (IntMap a) -> Meet (IntMap a) #

sconcat :: NonEmpty (Meet (IntMap a)) -> Meet (IntMap a) #

stimes :: Integral b => b -> Meet (IntMap a) -> Meet (IntMap a) #

Semigroup (Meet IntSet) Source # 
Instance details

Defined in Data.Semigroup.Meet

(Ord k, (Meet - Semigroup) a) => Semigroup (Meet (Map k a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Map k a) -> Meet (Map k a) -> Meet (Map k a) #

sconcat :: NonEmpty (Meet (Map k a)) -> Meet (Map k a) #

stimes :: Integral b => b -> Meet (Map k a) -> Meet (Map k a) #

Ord a => Semigroup (Meet (Set a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

(<>) :: Meet (Set a) -> Meet (Set a) -> Meet (Set a) #

sconcat :: NonEmpty (Meet (Set a)) -> Meet (Set a) #

stimes :: Integral b => b -> Meet (Set a) -> Meet (Set a) #

Semigroup (Meet Ulp32) Source # 
Instance details

Defined in Data.Float

Ord a => Semigroup (Meet (MaxMin a)) Source # 
Instance details

Defined in Data.Semilattice.MaxMin

Methods

(<>) :: Meet (MaxMin a) -> Meet (MaxMin a) -> Meet (MaxMin a) #

sconcat :: NonEmpty (Meet (MaxMin a)) -> Meet (MaxMin a) #

stimes :: Integral b => b -> Meet (MaxMin a) -> Meet (MaxMin a) #

(Minimal a, Semifield a) => Semigroup (Meet (N5 a)) Source # 
Instance details

Defined in Data.Semilattice.N5

Methods

(<>) :: Meet (N5 a) -> Meet (N5 a) -> Meet (N5 a) #

sconcat :: NonEmpty (Meet (N5 a)) -> Meet (N5 a) #

stimes :: Integral b => b -> Meet (N5 a) -> Meet (N5 a) #

(Meet - Semigroup) a => Semigroup (Meet (Top a)) Source # 
Instance details

Defined in Data.Semilattice.Top

Methods

(<>) :: Meet (Top a) -> Meet (Top a) -> Meet (Top a) #

sconcat :: NonEmpty (Meet (Top a)) -> Meet (Top a) #

stimes :: Integral b => b -> Meet (Top a) -> Meet (Top a) #

Monoid (Meet Bool) Source # 
Instance details

Defined in Data.Semigroup.Meet

(Meet - Monoid) b => Monoid (Meet (a -> b)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

mempty :: Meet (a -> b) #

mappend :: Meet (a -> b) -> Meet (a -> b) -> Meet (a -> b) #

mconcat :: [Meet (a -> b)] -> Meet (a -> b) #

Monoid (Meet Int) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Int8) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Int16) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Int32) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Int64) Source # 
Instance details

Defined in Data.Semigroup.Meet

(Meet - Monoid) a => Monoid (Meet (Maybe a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

mempty :: Meet (Maybe a) #

mappend :: Meet (Maybe a) -> Meet (Maybe a) -> Meet (Maybe a) #

mconcat :: [Meet (Maybe a)] -> Meet (Maybe a) #

Monoid (Meet Word) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Word8) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Word16) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Word32) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet Word64) Source # 
Instance details

Defined in Data.Semigroup.Meet

Monoid (Meet ()) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

mempty :: Meet () #

mappend :: Meet () -> Meet () -> Meet () #

mconcat :: [Meet ()] -> Meet () #

(Maximal a, Semigroup (Min a)) => Monoid (Meet (Min a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

mempty :: Meet (Min a) #

mappend :: Meet (Min a) -> Meet (Min a) -> Meet (Min a) #

mconcat :: [Meet (Min a)] -> Meet (Min a) #

(Meet - Monoid) a => Monoid (Meet (Max a)) Source # 
Instance details

Defined in Data.Semigroup.Meet

Methods

mempty :: Meet (Max a) #

mappend :: Meet (Max a) -> Meet (Max a) -> Meet (Max a) #

mconcat :: [Meet (Max a)] -> Meet (Max a) #

(Join - Monoid) a => Monoid (Meet (Down a)) Source # 
Instance details

Defined in Data.Semigroup.Join

Methods

mempty :: Meet (Down a) #

mappend :: Meet (Down a) -> Meet (Down a) -> Meet (Down a) #

mconcat :: [Meet (Down a)] -> Meet (Down a) #

(Ord a, Maximal a) => Monoid (Meet (MaxMin a)) Source # 
Instance details

Defined in Data.Semilattice.MaxMin

Methods

mempty :: Meet (MaxMin a) #

mappend :: Meet (MaxMin a) -> Meet (MaxMin a) -> Meet (MaxMin a) #

mconcat :: [Meet (MaxMin a)] -> Meet (MaxMin a) #

(Minimal a, Semifield a) => Monoid (Meet (N5 a)) Source # 
Instance details

Defined in Data.Semilattice.N5

Methods

mempty :: Meet (N5 a) #

mappend :: Meet (N5 a) -> Meet (N5 a) -> Meet (N5 a) #

mconcat :: [Meet (N5 a)] -> Meet (N5 a) #

(Meet - Semigroup) a => Monoid (Meet (Top a)) Source # 
Instance details

Defined in Data.Semilattice.Top

Methods

mempty :: Meet (Top a) #

mappend :: Meet (Top a) -> Meet (Top a) -> Meet (Top a) #

mconcat :: [Meet (Top a)] -> Meet (Top a) #

type Rep (Meet a) Source # 
Instance details

Defined in Data.Semigroup.Meet

type Rep (Meet a) = D1 (MetaData "Meet" "Data.Semigroup.Meet" "connections-0.0.3-DlJXNVSUPF02JVkbDQVocy" True) (C1 (MetaCons "Meet" PrefixI True) (S1 (MetaSel (Just "unMeet") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

(∧) :: (Meet - Semigroup) a => a -> a -> a infixr 6 Source #

Meet operation on a semilattice.

>>> (> (0::Int)) ∧ ((< 10) ∨ (== 15)) $ 15
True

top :: (Meet - Monoid) a => a Source #

meetLeq :: Eq a => (Meet - Semigroup) a => a -> a -> Bool Source #

The partial ordering induced by the meet-semilattice structure.

Normally when a implements Prd we should have: meetLeq x y ≡ x <= y

meetGeq :: Eq a => (Meet - Semigroup) a => a -> a -> Bool Source #

The partial ordering induced by the meet-semilattice structure.

Normally when a implements Prd we should have: meetGeq x y ≡ x >= y

pcompareMeet :: Eq a => (Meet - Semigroup) a => a -> a -> Maybe Ordering Source #

Partial version of compare.

Normally when a implements Prd we should have: pcompareJoin x y ≡ pcompare x y

Orphan instances

(Meet - Semigroup) (Min a) => Semigroup (Additive (Min a)) Source # 
Instance details

Methods

(<>) :: Additive (Min a) -> Additive (Min a) -> Additive (Min a) #

sconcat :: NonEmpty (Additive (Min a)) -> Additive (Min a) #

stimes :: Integral b => b -> Additive (Min a) -> Additive (Min a) #

(Meet - Monoid) (Min a) => Monoid (Additive (Min a)) Source # 
Instance details

Methods

mempty :: Additive (Min a) #

mappend :: Additive (Min a) -> Additive (Min a) -> Additive (Min a) #

mconcat :: [Additive (Min a)] -> Additive (Min a) #