-- chan-split.cabal auto-generated by cabal init. For additional -- options, see -- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr. -- The name of the package. Name: chan-split Homepage: http://coder.bsimmons.name/blog/2011/07/module-chan-split-released/ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented. Version: 0.3.0 -- A short (one-line) description of the package. Synopsis: Concurrent Chans as read/write pairs. Also provides generic Chan pair class. -- A longer description of the package. Description: 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 'Contravariant') 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 - get Cofunctor from "contravariant" package - 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 . -- The license under which the package is released. License: BSD3 -- The file containing the license text. License-file: LICENSE -- The package author(s). Author: Brandon Simmons -- An email address to which users can send suggestions, bug reports, -- and patches. Maintainer: brandon.m.simmons@gmail.com -- A copyright notice. -- Copyright: Category: Concurrency Build-type: Simple -- Extra files to be distributed with the package, such as examples or -- a README. -- Extra-source-files: -- Constraint on the version of Cabal needed to build this package. Cabal-version: >=1.6 source-repository head type: git location: https://github.com/jberryman/chan-split.git Library -- for the split chan class: Extensions: MultiParamTypeClasses , FunctionalDependencies -- for Functor / Contravariant instances: , GADTs Exposed-modules: Control.Concurrent.Chan.Split , Control.Concurrent.Chan.Class Build-depends: base >= 4 && < 5 , contravariant ghc-options: -Wall -- Modules not exported by this package. -- Other-modules: -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source. -- Build-tools: