{- | This module should be imported by untrustworthy code. Generally speaking, 
     untrustworhty code's import list should look like 

     @
     import SME.Untrustworthy 
     import MyLattice
     @

     where module @MyLattice@ implements the security lattice under consideration.
-} 
module SME.Untrustworthy 
       (
        -- Lattices in general  
        Lattice (), 
        FiniteLattice (), 
        less, 
        sless, 
        -- Two point lattice (low and high) 
        Level (),
        -- Security policy 
        Policy (),
        -- Secure Multi-Execution monad
        ME (), 
        SetLevel (SetLevel), 
        readFile, 
        writeFile, 
        sme,
        -- Secure Multi-Execution for the two point lattice (low and high) 
        sme'
       )
where

import Prelude hiding (readFile, writeFile)
import SME.Trustworthy