chan-split: Concurrent Chans as read/write pairs. Also provides generic Chan pair class.
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 (
Contravariant) 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
- get Cofunctor from "contravariant" package
- 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 [faq]||0.1.2, 0.1.3, 0.2.0, 0.3.0, 0.4.0, 0.5.0|
|Dependencies||base (==4.*), contravariant [details]|
|Source repo||head: git clone https://github.com/jberryman/chan-split.git|
|Uploaded||by BrandonSimmons at Tue Sep 20 19:30:31 UTC 2011|
|Downloads||3976 total (220 in the last 30 days)|
|Rating||(no votes yet) [estimated by Bayesian average]|
Docs uploaded by user
Build status unknown [no reports yet]
For package maintainers and hackage trustees