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 (
Cofunctor) on the chan
In addition this package provides a module that defines a
pair of classes
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.
0.1.3 -> 0.2.0
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
NewSplitChan class for chan pairs that can be
|Versions||0.1.2, 0.1.3, 0.2.0, 0.3.0, 0.4.0, 0.5.0|
|Dependencies||base (==4.*), cofunctor [details]|
|Source repo||head: git clone https://github.com/jberryman/chan-split.git|
|Uploaded||by BrandonSimmons at Mon Sep 19 21:54:04 UTC 2011|
|Downloads||2446 total (14 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
For package maintainers and hackage trustees