úÎRª     /Type class to encode finite security lattices. "All the elements in the lattice. jIt returns all the elements in the lattice that are strictly above the security level given as argument. (Type class to encode security lattices. 6The greatest lower bound between two security levels. 4The lowest upper bound between two security levels. JImplementation of the order relationship between elements of the lattice. XImplementation of the strict order relationship between security levels of the lattice. (Data type encoding two security levels. 8Security level to represent secret (high) information. 7Security level to represent public (low) information.    =Data type to set the security lattice to be used by function .  The multi-execution monad. XType class to specify security policies for programs run under secure multi-execution. EIt defines the security level assigned to an input or output of type a. $It assigns a default value (of type b) to an input of type a. $Secure operation for writing files. $Secure operation for reading files. Interpreter for the   monad jFunction to perform secure multi-execution. The first argument is only there for type-checking purposes.      aFunction to perform secure multi-execution considering the two-point security lattice encoded by .               !"#$%sme-0.1SME.Trustworthy SME.Lattice SME.LatticeLHSME.MESME.Untrustworthy FiniteLatticeuniverseupsetLatticemeetjoinlessslessLevelHLSetLevelMEPolicyleveldefvalue writeFilereadFilesmesme' ChanMatrixReadWriteReturnrun reuseInput reuseContents broadcast newChanMatrix newChanLevel newSyncVars