úÎ*'S'      !"# $ % & Unsafe7:This monad labels the results of the computation (of type a) with label l.Labeling expressions of type a with label l.Label of resourcesIt lifts arbitrary ' -actions.Execute secure computations. ()*()* Trustworthy7Throwing exceptions VThrowing and catching exceptions are done among family members with the same labels     Trustworthy7 To help the type-system    Safe7 %Type class encoding security lattices+IType class used to avoid arbitrary instances by attackers (Pablo's trick) Label for secrets Label for public data + , -./0123  + , -./0123Unsafe7bIt lifts functions which create resources into secure functions which create labeled resources It lifts an '&-action which writes into a data type d a@ into a secure function which writes into a labeled resource It lifts an '%-action which reads from a data type d a? into a secure function which reads from a labeled resource5Proxy function to set the index of the family member %Auxiliary function. A combination of  and .%Auxiliary function. A combination of  and .8It lifts an operation which perform a read on data type d a7, but it also performs a write on it as side-effect9It lifts an operation which perform a write on data type d a6, but it also performs a read on it as side-effect Trustworthy7Labeled expressionsType denoting values of type aCreation of labeled expressionsObserving labeled expressions44 Trustworthy7Labeled MVarsCreation of a labeled MVarCreation of an empty labeled MVarSecurely taking a labeled MVar Securely writing into a labeled MVar Trustworthy7 ¿Primitive which allows family members to safely communicate. The function finishes even if an exception is raised---the exception is rethrown when the returned value gets inspected. 6This function must not be used in a concurrent setting.!Safely spawning new threads"<Safely spawning new threads. The function returns a labeled 5- where the outcome of the thread is stored !" !" !" !"  Trustworthy7#Labeled references$Creation of labeled references%Reading labeled references&Writing labeled references#$%&#$%&#$%&#$%&6     !"#$%&'()*+ , - . /0123456789:;<=>?@ABCmac_0tU5q2Nh60r6BQTBj8Gwv8MAC.Core MAC.ExceptionMAC.MAC MAC.Lattice MAC.Effects MAC.LabeledMAC.MVar MAC.ControlMAC.RefMACMkMACResMkResunReslabelOfioTCBrunMACthrowMACcatchMACfixLessHLcreatewriteupreaddown read_and_fix write_and_fixrw_readrw_writeLabeledIdMkIdlabelunlabelMACMVar newMACMVarnewMACEmptyMVar takeMACMVar putMACMVarjoinMACforkMAC forkMACMVarMACRef newMACRef readMACRef writeMACRefghc-prim GHC.TypesIO $fMonadMAC$fApplicativeMAC $fFunctorMAC CanFlowToMkHMkL$fLessHH$fLessLH$fLessLL $fCanFlowToHH $fCanFlowToLH $fCanFlowToLLunIdbaseGHC.MVarMVar