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

Copyright (C) 2010-2015 Maximilian Bolingbroke 2015 Oleg Grenrus BSD-3-Clause (see the file LICENSE) Oleg Grenrus Safe Haskell2010

Algebra.Lattice.Lifted

Description

Synopsis

# Documentation

data Lifted a Source #

Graft a distinct bottom onto an otherwise unbounded lattice. As a bonus, the bottom will be an absorbing element for the meet.

Constructors

 Lift a Bottom

Instances

 Source # Methods(>>=) :: Lifted a -> (a -> Lifted b) -> Lifted b #(>>) :: Lifted a -> Lifted b -> Lifted b #return :: a -> Lifted a #fail :: String -> Lifted a # Source # Methodsfmap :: (a -> b) -> Lifted a -> Lifted b #(<\$) :: a -> Lifted b -> Lifted a # Source # Methodspure :: a -> Lifted a #(<*>) :: Lifted (a -> b) -> Lifted a -> Lifted b #(*>) :: Lifted a -> Lifted b -> Lifted b #(<*) :: Lifted a -> Lifted b -> Lifted a # Source # Methodsfold :: Monoid m => Lifted m -> m #foldMap :: Monoid m => (a -> m) -> Lifted a -> m #foldr :: (a -> b -> b) -> b -> Lifted a -> b #foldr' :: (a -> b -> b) -> b -> Lifted a -> b #foldl :: (b -> a -> b) -> b -> Lifted a -> b #foldl' :: (b -> a -> b) -> b -> Lifted a -> b #foldr1 :: (a -> a -> a) -> Lifted a -> a #foldl1 :: (a -> a -> a) -> Lifted a -> a #toList :: Lifted a -> [a] #null :: Lifted a -> Bool #length :: Lifted a -> Int #elem :: Eq a => a -> Lifted a -> Bool #maximum :: Ord a => Lifted a -> a #minimum :: Ord a => Lifted a -> a #sum :: Num a => Lifted a -> a #product :: Num a => Lifted a -> a # Source # Methodstraverse :: Applicative f => (a -> f b) -> Lifted a -> f (Lifted b) #sequenceA :: Applicative f => Lifted (f a) -> f (Lifted a) #mapM :: Monad m => (a -> m b) -> Lifted a -> m (Lifted b) #sequence :: Monad m => Lifted (m a) -> m (Lifted a) # Source # Associated Typestype Rep1 (Lifted :: * -> *) :: * -> * # Methodsfrom1 :: Lifted a -> Rep1 Lifted a #to1 :: Rep1 Lifted a -> Lifted a # Eq a => Eq (Lifted a) Source # Methods(==) :: Lifted a -> Lifted a -> Bool #(/=) :: Lifted a -> Lifted a -> Bool # Data a => Data (Lifted a) Source # Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Lifted a -> c (Lifted a) #gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Lifted a) #toConstr :: Lifted a -> Constr #dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Lifted a)) #dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Lifted a)) #gmapT :: (forall b. Data b => b -> b) -> Lifted a -> Lifted a #gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Lifted a -> r #gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Lifted a -> r #gmapQ :: (forall d. Data d => d -> u) -> Lifted a -> [u] #gmapQi :: Int -> (forall d. Data d => d -> u) -> Lifted a -> u #gmapM :: Monad m => (forall d. Data d => d -> m d) -> Lifted a -> m (Lifted a) #gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Lifted a -> m (Lifted a) #gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Lifted a -> m (Lifted a) # Ord a => Ord (Lifted a) Source # Methodscompare :: Lifted a -> Lifted a -> Ordering #(<) :: Lifted a -> Lifted a -> Bool #(<=) :: Lifted a -> Lifted a -> Bool #(>) :: Lifted a -> Lifted a -> Bool #(>=) :: Lifted a -> Lifted a -> Bool #max :: Lifted a -> Lifted a -> Lifted a #min :: Lifted a -> Lifted a -> Lifted a # Read a => Read (Lifted a) Source # MethodsreadsPrec :: Int -> ReadS (Lifted a) #readList :: ReadS [Lifted a] # Show a => Show (Lifted a) Source # MethodsshowsPrec :: Int -> Lifted a -> ShowS #show :: Lifted a -> String #showList :: [Lifted a] -> ShowS # Source # Associated Typestype Rep (Lifted a) :: * -> * # Methodsfrom :: Lifted a -> Rep (Lifted a) x #to :: Rep (Lifted a) x -> Lifted a # NFData a => NFData (Lifted a) Source # Methodsrnf :: Lifted a -> () # Hashable a => Hashable (Lifted a) Source # MethodshashWithSalt :: Int -> Lifted a -> Int #hash :: Lifted a -> Int # Source # Source # Methods Source # Methods Lattice a => Lattice (Lifted a) Source # Source # Methods(/\) :: Lifted a -> Lifted a -> Lifted a Source #meet :: Lifted a -> Lifted a -> Lifted a Source # Source # Methods(\/) :: Lifted a -> Lifted a -> Lifted a Source #join :: Lifted a -> Lifted a -> Lifted a Source # type Rep1 Lifted Source # type Rep1 Lifted = D1 (MetaData "Lifted" "Algebra.Lattice.Lifted" "lattices-1.6.0-2oKxOcsrwg99Rpe11Qz7rb" False) ((:+:) (C1 (MetaCons "Lift" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) (C1 (MetaCons "Bottom" PrefixI False) U1)) type Rep (Lifted a) Source # type Rep (Lifted a) = D1 (MetaData "Lifted" "Algebra.Lattice.Lifted" "lattices-1.6.0-2oKxOcsrwg99Rpe11Qz7rb" False) ((:+:) (C1 (MetaCons "Lift" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) (C1 (MetaCons "Bottom" PrefixI False) U1))

retractLifted :: BoundedJoinSemiLattice a => Lifted a -> a Source #

Interpret Lifted a using the BoundedJoinSemiLattice of a.