lattices-2.0.2: Fine-grained library for constructing and manipulating lattices

Copyright(C) 2010-2015 Maximilian Bolingbroke 2015-2019 Oleg Grenrus
LicenseBSD-3-Clause (see the file LICENSE)
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellSafe
LanguageHaskell2010

Algebra.Lattice.Levitated

Description

 
Synopsis

Documentation

data Levitated a Source #

Graft a distinct top and bottom onto an otherwise unbounded lattice. The top is the absorbing element for the join, and the bottom is the absorbing element for the meet.

Constructors

Bottom 
Levitate a 
Top 
Instances
Monad Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

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

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

return :: a -> Levitated a #

fail :: String -> Levitated a #

Functor Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

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

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

Applicative Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

pure :: a -> Levitated a #

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

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

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

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

Foldable Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

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

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

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

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

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

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

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

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

toList :: Levitated a -> [a] #

null :: Levitated a -> Bool #

length :: Levitated a -> Int #

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

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

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

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

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

Traversable Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

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

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

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

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

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

Defined in Algebra.Lattice.Levitated

Methods

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

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

Data a => Data (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Levitated a -> c (Levitated a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Levitated a) #

toConstr :: Levitated a -> Constr #

dataTypeOf :: Levitated a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Levitated a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Levitated a)) #

gmapT :: (forall b. Data b => b -> b) -> Levitated a -> Levitated a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Levitated a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Levitated a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Levitated a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Levitated a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Levitated a -> m (Levitated a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Levitated a -> m (Levitated a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Levitated a -> m (Levitated a) #

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

Defined in Algebra.Lattice.Levitated

Read a => Read (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

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

Defined in Algebra.Lattice.Levitated

Generic (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Associated Types

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

Methods

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

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

Function a => Function (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

function :: (Levitated a -> b) -> Levitated a :-> b #

Arbitrary a => Arbitrary (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

arbitrary :: Gen (Levitated a) #

shrink :: Levitated a -> [Levitated a] #

CoArbitrary a => CoArbitrary (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

coarbitrary :: Levitated a -> Gen b -> Gen b #

NFData a => NFData (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

rnf :: Levitated a -> () #

Hashable a => Hashable (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

hashWithSalt :: Int -> Levitated a -> Int #

hash :: Levitated a -> Int #

Universe a => Universe (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

universe :: [Levitated a] #

Finite a => Finite (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

PartialOrd a => PartialOrd (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Lattice a => BoundedMeetSemiLattice (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

top :: Levitated a Source #

Lattice a => BoundedJoinSemiLattice (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

bottom :: Levitated a Source #

Lattice a => Lattice (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Generic1 Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Associated Types

type Rep1 Levitated :: k -> Type #

type Rep (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

type Rep (Levitated a) = D1 (MetaData "Levitated" "Algebra.Lattice.Levitated" "lattices-2.0.2-HdMTcqWeXqlAAQvdNaFFrQ" False) (C1 (MetaCons "Bottom" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Levitate" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) :+: C1 (MetaCons "Top" PrefixI False) (U1 :: Type -> Type)))
type Rep1 Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

type Rep1 Levitated = D1 (MetaData "Levitated" "Algebra.Lattice.Levitated" "lattices-2.0.2-HdMTcqWeXqlAAQvdNaFFrQ" False) (C1 (MetaCons "Bottom" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Levitate" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1) :+: C1 (MetaCons "Top" PrefixI False) (U1 :: Type -> Type)))

foldLevitated :: b -> (a -> b) -> b -> Levitated a -> b Source #

Fold Levitated.