Capabilities: Separate and contain effects of IO monad.

[ bsd3, generics, library, security ] [ Propose Tags ]

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

Downloads

Maintainer's Corner

Package maintainers

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]
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 1411 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]