lio-eci11-0.2: Labeled IO library

LIO.LIORef

Contents

Description

This module implements labeled IORefs. The interface is analogous to Data.IORef, but the operations take place in the LIO monad. Moreover, reading the LIORef calls taint, while writing it calls wguard.

Synopsis

Documentation

data LIORef l a Source

newLIORef :: Label l => l -> a -> LIO l s (LIORef l a)Source

readLIORef :: Label l => LIORef l a -> LIO l s aSource

writeLIORef :: Label l => LIORef l a -> a -> LIO l s ()Source

atomicModifyLIORef :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s bSource

With privileges

newLIORefP :: Priv l p => p -> l -> a -> LIO l s (LIORef l a)Source

readLIORefP :: Priv l p => p -> LIORef l a -> LIO l s aSource

writeLIORefP :: Priv l p => p -> LIORef l a -> a -> LIO l s ()Source

atomicModifyLIORefP :: Priv l p => p -> LIORef l a -> (a -> (a, b)) -> LIO l s bSource

TCB

newLIORefTCB :: Label l => l -> a -> LIO l s (LIORef l a)Source

readLIORefTCB :: Label l => LIORef l a -> LIO l s aSource

writeLIORefTCB :: Label l => LIORef l a -> a -> LIO l s ()Source

atomicModifyLIORefTCB :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s bSource