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.
Modules
- Capabilities
- Capabilities.IO
- Capabilities.Internals
- System
- Environment
- System.Environment.Capabilities
- Environment
Downloads
- Capabilities-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0 |
---|---|
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] |
Tested with | ghc ==7.4.1 |
License | BSD-3-Clause |
Author | Baldur Blöndal, Daniel Schoepe |
Maintainer | baldur@student.chalmers.se, daniel@schoepe.org |
Category | Security, Generics |
Home page | https://github.com/Icelandjack/Capabilities |
Source repo | head: git clone git://github.com/IcelandJack/Capabilties.git |
Uploaded | by BaldurBlondal at 2013-08-08T09:31:24Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 1449 total (2 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] All reported builds failed as of 2016-10-24 [all 14 reports] |