A comment in
// The Task currently holding this Capability. This task has
// exclusive access to the contents of this Capability (apart from
This looks to be an access control mechanism.
In the security literature, the word capability is used to refer to a way of controlling access. The dominant usage is as a reference to an object that encapsulates authority such that denying access to the object denies access to that authority but there are others as explained at "Capability Myths Demolished"
We know of no security mechanisms outside of the
object-capability model that have described themselves
using the word capability except for “POSIX
capabilities”, “Netscape capabilities”, and “split
capabilities” . POSIX capabilities are not generally
described as “capability-based security”. The
“Netscape capabilities” extensions to Java were fairly
short-lived and have not been presented in the research
literature as a capability system. Moreover, both
“POSIX capabilities” and “Netscape capabilities” have
never been presented as security mechanisms that can
stand on their own, instead only serving as an extension
to existing security systems. The split capabilities
model is explicitly presented in contrast to the pure
capability model .
The Haskell usage is not an object-capability model. The pointer from a task to a capability would have to go the other way, and probably be proxied through a revokable wrapper to qualify as a capability in the sense explained above.