Îõ³h$}´#      !"None&'(-./2<>ÀÁÂÉÎÔÖ×ÙéìtcapsThe  constraint is a shorthand for  of .capsThe ! capability is used to model the Reader+ effect within the capabilities framework.capsEvidence that cap is present or absent in caps.capsEnsure that the caps list does not have an element cap.capsEnsure that the caps list subsumes icaps. It is equivalent to a HasCap icap caps constraint for each icap in icaps.capsEnsure that the caps list has an element cap. caps " is a type to extend capabilities.The allCaps? parameter is a list of capabilities that will be provided to 4 eventually, when the building process is done. The capsî parameter is the part of capabilities that was constructed so far. The builder is considered complete when allCaps ~ caps!, only then it can be passed to . capsThe  Ê newtype guarantees that the wrapped capability implementation is sufficiently polymorphic so that required subtyping properties hold in methods that take monadic actions as input (negative position).This rules out using , , and 8 inside capability implementations in an unsafe manner.capsThe Í transformer adds access to capabilities. This is a convenience synonym for # of  , and all # functions ($, %) can be used with it.caps caps m is a map of capabilities caps over a base monad m&. Consider the following capabilities: ?data X m = X (String -> m String) data Y m = Y (Int -> m Bool) ?We can construct a map of capabilities with the following type: "capsXY :: Capabilities '[X, Y] IO In this case, capsXY. would be a map with two elements, one at key X and one at key Y5. The types of capabilities themselves serve as keys.ü is a heterogeneous collection, meaning that its values have different types. The type of a value is determined by the key: Î X: X (\_ -> return "hi") :: X (CapsT '[X, Y] IO) Y: Y (\_ -> return True) :: Y (CapsT '[X, Y] IO) ---- --------------------- -------------------- keys values types of values ÍNotice that stored dictionaries are parametrized not just by the base monad IO, but with the æ transformer on top. This means that each capability has access to all other capabilities and itself.caps