lattices-2.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

Instances details
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 #

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) #

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 #

Functor Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Methods

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

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

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 #

Generic1 Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

Associated Types

type Rep1 Levitated :: k -> Type #

Methods

from1 :: forall (a :: k). Levitated a -> Rep1 Levitated a #

to1 :: forall (a :: k). Rep1 Levitated a -> Levitated a #

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 #

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

Defined in Algebra.Lattice.Levitated

Methods

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

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 :: forall r r'. (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) #

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 #

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

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

Defined in Algebra.Lattice.Levitated

Methods

rnf :: 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 #

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

Defined in Algebra.Lattice.Levitated

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

Defined in Algebra.Lattice.Levitated

Methods

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

hash :: Levitated a -> Int #

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

Defined in Algebra.Lattice.Levitated

Methods

bottom :: Levitated a Source #

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

Defined in Algebra.Lattice.Levitated

Methods

top :: Levitated a Source #

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

Defined in Algebra.Lattice.Levitated

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

Defined in Algebra.Lattice.Levitated

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

Defined in Algebra.Lattice.Levitated

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

Defined in Algebra.Lattice.Levitated

Methods

universe :: [Levitated a] #

type Rep1 Levitated Source # 
Instance details

Defined in Algebra.Lattice.Levitated

type Rep1 Levitated = D1 ('MetaData "Levitated" "Algebra.Lattice.Levitated" "lattices-2.2-ExsECSVnOmtEcARHt0Jtvl" '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)))
type Rep (Levitated a) Source # 
Instance details

Defined in Algebra.Lattice.Levitated

type Rep (Levitated a) = D1 ('MetaData "Levitated" "Algebra.Lattice.Levitated" "lattices-2.2-ExsECSVnOmtEcARHt0Jtvl" '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)))

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

Fold Levitated.