Capabilities: Separate and contain effects of IO monad.
The capabilities library is an effort to make effects in Haskell more explicit by breaking the monolithic IO monad into smaller composable parts called capabilities: a use case might be an action that needs logging with current time but which should not be allowed any other IO. This exists as a pleasant middle ground between pure functions, the ST monad and the kitchen-sink IO providing a more fine-grained approach to effectful computations. Another benefit to this approach is security where a computation should only have access to resources requires to complete its job (principle of least privilege).
The implementation of the idea is based on Wouter Swierstra's
Functional Pearl Data types a la carte (Journal of Functional
Programming, 18(4):423-436, 2008,
http://dx.doi.org/10.1017/S0956796808006758) and uses the
compdata package for compositional data types.
|Dependencies||base (>=4.5 && <4.6), compdata (>=0.6 && <0.7), directory (>=1.1 && <1.2), free (>=3.4 && <3.5), unix (>=2.5 && <2.6) [details]|
|Author||Baldur Blöndal, Daniel Schoepe|
|Source repo||head: git clone git://github.com/IcelandJack/Capabilties.git|
|Uploaded||by BaldurBlondal at 2013-08-08T09:31:24Z|
|Downloads||1361 total (3 in the last 30 days)|
|Rating||(no votes yet) [estimated by Bayesian average]|
|Status||Docs not available [build log]
All reported builds failed as of 2016-10-24 [all 14 reports]