Safe Haskell | Safe |
---|---|
Language | Haskell98 |
- class Monad m => LMonad m where
- data (Label l, Monad m, LMonad m) => LMonadT l m a
- runLMonad :: (Label l, LMonad m) => LMonadT l m a -> m a
- lLift :: (Label l, LMonad m) => m a -> LMonadT l m a
- getCurrentLabel :: (Label l, LMonad m) => LMonadT l m l
- getClearance :: (Label l, LMonad m) => LMonadT l m l
- lubCurrentLabel :: (Label l, LMonad m) => l -> LMonadT l m l
- canSetLabel :: (Label l, LMonad m) => l -> LMonadT l m Bool
- setLabel :: (Label l, LMonad m) => l -> LMonadT l m ()
- taintLabel :: (Label l, LMonad m) => l -> LMonadT l m ()
- setClearance :: (Label l, LMonad m) => l -> LMonadT l m ()
- raiseClearanceTCB :: (Label l, LMonad m) => l -> LMonadT l m ()
- lowerLabelTCB :: (Label l, LMonad m) => l -> LMonadT l m ()
- data Label l => Labeled l a
- label :: (Label l, LMonad m) => l -> a -> LMonadT l m (Labeled l a)
- unlabel :: (Label l, LMonad m) => Labeled l a -> LMonadT l m a
- canUnlabel :: (Label l, LMonad m) => Labeled l a -> LMonadT l m Bool
- labelOf :: Label l => Labeled l a -> l
- toLabeledTCB :: (Label l, LMonad m) => l -> LMonadT l m a -> LMonadT l m (Labeled l a)
- class ToLabel t l where
- swapBase :: (Label l, LMonad m, LMonad n) => (m (a, LState l) -> n (b, LState l)) -> LMonadT l m a -> LMonadT l n b
Documentation
data (Label l, Monad m, LMonad m) => LMonadT l m a Source #
(LMonad m, Label l, Functor m, MonadBase IO m) => MonadBase IO (LMonadT l m) Source # | |
(LMonad m, Label l, MonadBaseControl IO m) => MonadBaseControl IO (LMonadT l m) Source # | |
(Label l, LMonad m) => Monad (LMonadT l m) Source # | |
(Label l, LMonad m, Functor m) => Functor (LMonadT l m) Source # | |
(Label l, LMonad m, Functor m) => Applicative (LMonadT l m) Source # | |
(Label l, LMonad m, MonadIO m) => MonadIO (LMonadT l m) Source # | |
(Label l, LMonad m, MonadThrow m) => MonadThrow (LMonadT l m) Source # | |
(LMonad m, Label l, Monoid (m a)) => Monoid (LMonadT l m a) Source # | |
type StM (LMonadT l m) a Source # | |
getCurrentLabel :: (Label l, LMonad m) => LMonadT l m l Source #
getClearance :: (Label l, LMonad m) => LMonadT l m l Source #
lubCurrentLabel :: (Label l, LMonad m) => l -> LMonadT l m l Source #
taintLabel :: (Label l, LMonad m) => l -> LMonadT l m () Source #
setClearance :: (Label l, LMonad m) => l -> LMonadT l m () Source #
raiseClearanceTCB :: (Label l, LMonad m) => l -> LMonadT l m () Source #
lowerLabelTCB :: (Label l, LMonad m) => l -> LMonadT l m () Source #
class ToLabel t l where Source #
Type class to convert a given type to a given label.
toConfidentialityLabel :: t -> l Source #
toIntegrityLabel :: t -> l Source #