úΑ      Safe-Inferred It is needed by  on  to put the string into the  Either d a returned. LA simple monad (transformer) to ensure that data are accessed legitimately. RThe return value is either the description of an access having been denied (left) 2 or the result of the normal computation (right). Control the decision process. NThe constructors are ordered by prevalence. For instance, if two capabilities  respectively return   and  ,  the final decision will be  .  Final no Final yes (see explanation) No but another   can still decide to grant !Allow things to be accessed. See . d# is the type describing an access. 1Check that the access is legal or make the monad "fail". Lift an action from  to .             !"safe-access-0.1.0.0Control.SafeAccessMonadSafeAccessgetCapabilities denyAccessAccessDescriptordescrMsg SafeAccessTrunSafeAccessTAccessDecision AccessDenied AccessGrantedAccessDeniedSoft Capabilities Capability MkCapability runCapability ensureAccess liftErrorTbaseGHC.Basefailtransformers-0.4.1.0Control.Monad.Trans.ErrorErrorTmergeDecisionsgetCapabilities' denyAccess'$fMonadSafeAccessSafeAccessTd$fMonadIOSafeAccessT$fApplicativeSafeAccessT$fFunctorSafeAccessT$fMonadTransSafeAccessT$fMonadSafeAccessT