module LIO.Labeled.Trans (
label
, labelP
, unlabel
, unlabelP
, relabelLabeledP
, taintLabeled
, taintLabeledP
, lFmap
, lAp
) where
import safe LIO.Label
import safe LIO.Core
import LIO.TCB
import safe qualified LIO.Labeled as L
label :: (MonadLIO l m, Label l) => l -> a -> m (Labeled l a)
label l = liftLIO . L.label l
labelP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> a -> m (Labeled l a)
labelP p l = liftLIO . L.labelP p l
unlabel :: (MonadLIO l m, Label l) => Labeled l a -> m a
unlabel = liftLIO . L.unlabel
unlabelP :: (MonadLIO l m, PrivDesc l p) => Priv p -> Labeled l a -> m a
unlabelP p = liftLIO . L.unlabelP p
relabelLabeledP :: (MonadLIO l m, PrivDesc l p)
=> Priv p -> l -> Labeled l a -> m (Labeled l a)
relabelLabeledP p newl = liftLIO . L.relabelLabeledP p newl
taintLabeled :: (MonadLIO l m, Label l) => l -> Labeled l a -> m (Labeled l a)
taintLabeled l = liftLIO . L.taintLabeled l
taintLabeledP :: (MonadLIO l m, PrivDesc l p)
=> Priv p -> l -> Labeled l a -> m (Labeled l a)
taintLabeledP p l = liftLIO . L.taintLabeledP p l
lFmap :: (MonadLIO l m, Label l) => Labeled l a -> (a -> b) -> m (Labeled l b)
lFmap l = liftLIO . L.lFmap l
lAp :: (MonadLIO l m, Label l) => Labeled l (a -> b) -> Labeled l a -> m (Labeled l b)
lAp lf = liftLIO . L.lAp lf