nspace-0.2.0.0: Efficient, infinite-precision 2D and 3D spatial containers.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Semilattice

Synopsis

Documentation

class Monoid a => Semilattice a where Source #

A Semilattice is a Monoid with the additional property that its (/\) = (<>) operation is commutative and idempotent. That is:

a /\ b = b /\ a

and

a /\ a = a

These two properties ensure the internal representations of QuadTree and OctTree can't leak out when performing spatial queries.

Minimal complete definition

Nothing

Methods

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

Instances

Instances details
Semilattice All Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Semilattice Any Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Semilattice () Source # 
Instance details

Defined in Data.Semilattice

Methods

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

(Ord a, Bounded a) => Semilattice (Max a) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

(Ord a, Bounded a) => Semilattice (Min a) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Ord a => Semilattice (Set a) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Semilattice a => Semilattice (MonoidalIntMap a) Source # 
Instance details

Defined in Data.Semilattice

Semilattice a => Semilattice (MonoidalIntMap a) Source # 
Instance details

Defined in Data.Semilattice

Semilattice a => Semilattice (OctTree a) Source # 
Instance details

Defined in Data.OctTree

Methods

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

Semilattice a => Semilattice (QuadTree a) Source # 
Instance details

Defined in Data.QuadTree

Methods

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

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

Defined in Data.Semilattice

Methods

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

(Hashable k, Eq k, Semilattice a) => Semilattice (MonoidalHashMap k a) Source # 
Instance details

Defined in Data.Semilattice

(Ord k, Semilattice a) => Semilattice (MonoidalMap k a) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

(Ord k, Semilattice a) => Semilattice (MonoidalMap k a) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Semilattice b => Semilattice (a -> b) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

(Semilattice a, Semilattice b) => Semilattice (a, b) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

Semilattice a => Semilattice (Const a b) Source # 
Instance details

Defined in Data.Semilattice

Methods

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

(Semilattice a, Semilattice b, Semilattice c) => Semilattice (a, b, c) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: (a, b, c) -> (a, b, c) -> (a, b, c) Source #

(Semilattice (f a), Semilattice (g a)) => Semilattice (Product f g a) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: Product f g a -> Product f g a -> Product f g a Source #

(Semilattice (f a), Semilattice (g a)) => Semilattice ((f :*: g) a) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a Source #

Semilattice a => Semilattice (K1 i a b) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: K1 i a b -> K1 i a b -> K1 i a b Source #

(Semilattice a, Semilattice b, Semilattice c, Semilattice d) => Semilattice (a, b, c, d) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source #

Semilattice (f (g a)) => Semilattice (Compose f g a) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: Compose f g a -> Compose f g a -> Compose f g a Source #

Semilattice (f (g a)) => Semilattice ((f :.: g) a) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: (f :.: g) a -> (f :.: g) a -> (f :.: g) a Source #

Semilattice (f a) => Semilattice (M1 i c f a) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: M1 i c f a -> M1 i c f a -> M1 i c f a Source #

(Semilattice a, Semilattice b, Semilattice c, Semilattice d, Semilattice e) => Semilattice (a, b, c, d, e) Source # 
Instance details

Defined in Data.Semilattice

Methods

(/\) :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source #