lattices-2.2.1.1: 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 
Instance details

Defined in Algebra.Lattice.Levitated

type Rep1 Levitated = D1 ('MetaData "Levitated" "Algebra.Lattice.Levitated" "lattices-2.2.1.1-J46lACPEOTBKo73SIhecCd" '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)))

Methods

from1 :: Levitated a -> Rep1 Levitated a

to1 :: 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) 
Instance details

Defined in Algebra.Lattice.Levitated

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

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

Methods

readsPrec :: Int -> ReadS (Levitated a)

readList :: ReadS [Levitated a]

readPrec :: ReadPrec (Levitated a)

readListPrec :: ReadPrec [Levitated a]

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

Defined in Algebra.Lattice.Levitated

Methods

showsPrec :: Int -> Levitated a -> ShowS

show :: Levitated a -> String

showList :: [Levitated a] -> ShowS

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

Methods

compare :: Levitated a -> Levitated a -> Ordering

(<) :: Levitated a -> Levitated a -> Bool

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

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

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

max :: Levitated a -> Levitated a -> Levitated a

min :: Levitated a -> Levitated a -> 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

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

Methods

leq :: Levitated a -> Levitated a -> Bool Source #

comparable :: Levitated a -> Levitated a -> Bool Source #

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

Defined in Algebra.Lattice.Levitated

Methods

universeF :: [Levitated a]

cardinality :: Tagged (Levitated a) Natural

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.1.1-J46lACPEOTBKo73SIhecCd" '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.1.1-J46lACPEOTBKo73SIhecCd" '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.