{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} -- | Encodes a security lattice. module SecLib.Lattice where -- Less class Less s s' where -- | This method determines that information at security level @s@ can flow to security level @s'@. less :: s -> s' -> () class Attacker s where {- | This method determines the observational power of the attacker. Attackers are then capable to break the abstraction of the security monads in module "Sec" and "SecIO" for security levels below or equal than @s@. -} observe :: s -> ()