pandora-0.4.0: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Pattern.Object.Semilattice

Synopsis

Documentation

class Infimum a where Source #

When providing a new instance, you should ensure it satisfies:
* Associativity: x /\ (y /\ z) ≡ (x /\ y) /\ z
* Commutativity: x /\ y ≡ y /\ x
* Idempotency: x /\ x ≡ x

Methods

(/\) :: a -> a -> a Source #

Instances

Instances details
Infimum a => Infimum (Identity a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Identity

Methods

(/\) :: Identity a -> Identity a -> Identity a Source #

Infimum a => Infimum (Maybe a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

(/\) :: Maybe a -> Maybe a -> Maybe a Source #

(Infimum s, Infimum a) => Infimum (s :*: a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Product

Methods

(/\) :: (s :*: a) -> (s :*: a) -> s :*: a Source #

Infimum a => Infimum (Tagged tag a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Tagged

Methods

(/\) :: Tagged tag a -> Tagged tag a -> Tagged tag a Source #

Infimum a => Infimum (Constant a b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Constant

Methods

(/\) :: Constant a b -> Constant a b -> Constant a b Source #

class Supremum a where Source #

When providing a new instance, you should ensure it satisfies:
* Associativity: x \/ (y \/ z) ≡ (x \/ y) \/ z
* Commutativity: x \/ y ≡ y \/ x
* Idempotency: x \/ x ≡ x

Methods

(\/) :: a -> a -> a Source #

Instances

Instances details
Supremum a => Supremum (Identity a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Identity

Methods

(\/) :: Identity a -> Identity a -> Identity a Source #

Supremum a => Supremum (Maybe a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

(\/) :: Maybe a -> Maybe a -> Maybe a Source #

(Supremum s, Supremum a) => Supremum (s :*: a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Product

Methods

(\/) :: (s :*: a) -> (s :*: a) -> s :*: a Source #

Supremum a => Supremum (Tagged tag a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Tagged

Methods

(\/) :: Tagged tag a -> Tagged tag a -> Tagged tag a Source #

Supremum a => Supremum (Constant a b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Constant

Methods

(\/) :: Constant a b -> Constant a b -> Constant a b Source #

type family Semilattice constraint where ... Source #

Equations

Semilattice Infimum = () 
Semilattice Supremum = ()