{-# LANGUAGE Safe #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE FlexibleInstances #-} {- | 'MonadLIO' generalizations for "LIO.Core". -} module LIO.Core.Trans ( getLabel , setLabel , setLabelP , getClearance , setClearance , setClearanceP , guardAlloc , guardAllocP , taint , taintP , guardWrite , guardWriteP ) where import safe LIO.Label import safe LIO.Monad import safe qualified LIO.Core as C -- | See 'LIO.Core.getLabel'. getLabel :: (MonadLIO l m, Label l) => m l getLabel = liftLIO C.getLabel -- | See 'LIO.Core.setLabel'. setLabel :: (MonadLIO l m, Label l) => l -> m () setLabel = liftLIO . C.setLabel -- | See 'LIO.Core.setLabelP'. setLabelP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m () setLabelP p = liftLIO . C.setLabelP p -- | See 'LIO.Core.getClearance'. getClearance :: (MonadLIO l m, Label l) => m l getClearance = liftLIO C.getClearance -- | See 'LIO.Core.setClearance'. setClearance :: (MonadLIO l m, Label l) => l -> m () setClearance = liftLIO . C.setClearance -- | See 'LIO.Core.setClearanceP'. setClearanceP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m () setClearanceP p = liftLIO . C.setClearanceP p -- | See 'LIO.Core.guardAlloc'. guardAlloc :: (MonadLIO l m, Label l) => l -> m () guardAlloc = liftLIO . C.guardAlloc -- | See 'LIO.Core.guardAllocP'. guardAllocP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m () guardAllocP p = liftLIO . C.guardAllocP p -- | See 'LIO.Core.taint'. taint :: (MonadLIO l m, Label l) => l -> m () taint = liftLIO . C.taint -- | See 'LIO.Core.taintP'. taintP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m () taintP p = liftLIO . C.taintP p -- | See 'LIO.Core.guardWrite'. guardWrite :: (MonadLIO l m, Label l) => l -> m () guardWrite = liftLIO . C.guardWrite -- | See 'LIO.Core.guardWriteP'. guardWriteP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m () guardWriteP p = liftLIO . C.guardWriteP p