Safe Haskell | Unsafe |
---|
This is the TCB-restricted version of LIO.Labeled, which documents
the implementation of Labeled
values and their use. It provides
functions for labeling (labelTCB
) and unlabeling (unlabelTCB
)
labeled values without imposing any information flow restrictions.
- data Labeled l t = LabeledTCB {
- labelOfLabeled :: !l
- unlabelTCB :: !t
- labelTCB :: Label l => l -> a -> Labeled l a
Documentation
Labeled l a
is a value that associates a label of type l
with
a value of type a
. Labeled values allow users to label data with
a label other than the current label. In an embedded setting this
is akin to having first class labeled values. Note that Labeled
is an instance of LabelOf
, which effectively means that the label
of a Labeled
value is usually just protected by the current
label. (Of course if you have a nested labeled value then the label
on the inner labeled value's label is the outer label.)
LabeledTCB | |
|