chan-split: Concurrent Chans as read/write pairs. Also provides generic Chan, Cofunctor classes.
A wrapper around Control.Concurrent.Chan that splits a Chan into a pair, one of which allows only read operations, the other write operations.
This makes code easier to reason about, allows us to define
useful instances (Functor and Cofunctor) on the chan
pairs.
In addition this package provides a module that defines a
pair of classes ReadableChan and WritableChan which
defines the basic methods any Chan type should provide.
To use standard Chans with these polymorphic functions, import as follows:
import Control.Concurrent.Chan hiding (readChan,writeChan,writeList2Chan) import Control.Concurrent.Chan.Class
When used alongside standard Chans, the Split module can be imported qualified like:
import qualified Control.Concurrent.Chan.Split as S
Note, we do not implement the deprecated unGetChan and isEmptyChan functions.
This module is used internally by the "simple-actors" package.
CHANGES:
0.1.3 -> 0.2.0
- moved Data.Cofunctor to its own module "cofunctor"
- redefine chan pair classes using fundeps
to express the relationship between input
and output halfs of a Chan
- define NewSplitChan class for chan pairs that can be
instantiated
Downloads
- chan-split-0.2.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.2, 0.1.3, 0.2.0, 0.3.0, 0.4.0, 0.5.0 |
|---|---|
| Dependencies | base (>=4 && <5), cofunctor [details] |
| License | BSD-3-Clause |
| Author | Brandon Simmons |
| Maintainer | brandon.m.simmons@gmail.com |
| Uploaded | by BrandonSimmons at 2011-09-19T21:54:04Z |
| Category | Concurrency |
| Home page | http://coder.bsimmons.name/blog/2011/07/module-chan-split-released/ |
| Source repo | head: git clone https://github.com/jberryman/chan-split.git |
| Distributions | NixOS:0.5.0 |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 5355 total (15 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |