lio- Labeled IO Information Flow Control Library

Safe HaskellSafe



This is the main module to be included by code using the Labeled IO (LIO) library. This module exports the core library (documented in LIO.Core), with support for labels and privileges (documented in LIO.Label) and labeled values (documented in LIO.Labeled).

Certain symbols in the LIO library, particularly those in LIO.Exception, use the same names as their IO equivalents in the system libraries. Hence main modules consisting mostly of IO code that simply need to run LIO code should import LIO.Run (or LIO.DCLabel) to avoid polluting their namespaces.

Most code will need to use a particular label format, which needs to be imported separately. Hence, a typical set of imports for an untrusted LIO module is:

 import LIO
 import LIO.DCLabel


module LIO.Core

module LIO.Label