dclabel-0.0.2: DCLabel/Safe.hs
{-# LANGUAGE CPP #-}
#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 702)
{-# LANGUAGE Trustworthy #-}
#else
#warning "This module is not using SafeHaskell"
#endif
{-|
This module exports a safe-subset of "DCLabel.Core",
implementing Disjunction Category Labels.
The exported functions and constructors may be used by
untrusted code, guaranteeing that they cannot perform
anything unsafe.
-}
module DCLabel.Safe ( -- * DC Labels with EDSL
join, meet, top, bottom, canflowto
, Label(..), DCLabel(..), Disj(..), Conj(..)
, Principal, principal, name, singleton
, listToDisj, disjToList
, listToLabel, labelToList
, (.\/.), (./\.)
, (<>), (><)
, newDC
-- * Privilegies
, TCBPriv, Priv
, canflowto_p
, delegatePriv
, canDelegate, owns
, newPriv, NewPriv, newTCBPriv, noPriv
) where
import DCLabel.Core
#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 702)
import safe DCLabel.NanoEDSL
#else
import DCLabel.NanoEDSL
#endif