úÎ       Safe-Inferred246KA simple monad (transformer) to ensure that data are accessed legitimately.ƒThe return value is either the description of an access having been denied (left) or the result of the normal computation (right).Control the decision process.cThe constructors are ordered by prevalence. For instance, if two capabilities respectively return  and , the final decision will be .Final noFinal yes (see explanation) No but another   can still decide to grant !Allow things to be accessed. See .d" is the type describing an access.8Check that the access is legal or make the monad "fail".Lift an action from ErrorT to .%  !"#$       !"#$%      !"#$%&safe-access-0.2.1.1Control.SafeAccessMonadSafeAccessgetCapabilities denyAccess SafeAccessTrunSafeAccessTAccessDecision AccessDenied AccessGrantedAccessDeniedSoft Capabilities Capability MkCapability runCapability ensureAccess liftExceptTmergeDecisionsgetCapabilities' denyAccess'$fMonadSafeAccessdWriterT$fMonadSafeAccessdRWST$fMonadSafeAccessdReaderT$fMonadSafeAccessdMaybeT$fMonadSafeAccessdListT$fMonadSafeAccessdIdentityT$fMonadSafeAccessdExceptT$fMonadSafeAccessdContT$fMonadWriterwSafeAccessT$fMonadStatesSafeAccessT$fMonadReaderrSafeAccessT$fMonadErroreSafeAccessT$fMonadSafeAccessdSafeAccessT$fMonadIOSafeAccessT$fApplicativeSafeAccessT$fFunctorSafeAccessT$fMonadTransSafeAccessT$fMonadSafeAccessT