The CCA package

[Tags:bsd3, library, program]

A library that provides normalization support via Template Haskell for CCAs, and a modified preprocessor based on Ross Paterson's arrowp that reads Haskell with arrow notation and outputs Haskell 98 + Template Haskell sources for use with CCA library.

[Skip to Readme]


Versions 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5,,,
Change log Changelog
Dependencies array, base (>=3 && <5), containers, ghc-prim, haskell-src, syb, template-haskell [details]
License BSD3
Author Paul H Liu <>, Eric Cheng <>
Maintainer Paul H Liu <>
Category Development
Home page not available
Source repository head: git clone
Uploaded Fri May 8 03:06:09 UTC 2015 by PaulLiu
Distributions NixOS:
Downloads 3906 total (26 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2015-05-08 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for CCA

Readme for CCA-

A Library and Preprocessor for Causal Commutative Arrows (CCA)

This library implements the CCA normalization described originally in the 
paper [1] (which is now superseded by [2], a more detailed journal version).  
It uses Template Haskell as a staged compilation for arrow programs written
in arrow syntax. A modified arrow preprocessor based on Paterson's arrowp
program, now called ccap, is provided to help preparing proper input to 
Template Haskell. 

Note that this is a preliminary release, and still very experimental. Please
send your feedbacks directly to Paul H. Liu <>. All suggestions 
are welcome.

Last Modified: Mon May 12 2014

[1]: Hai Liu, Eric Cheng, and Paul Hudak. Causal Commutative Arrows and Their
Optimization. Proceedings of the 14th ACM SIGPLAN International Conference on
Functional Programming (ICFP 2009). Edinburgh, Scotland. August 2009 

[2]: Hai Liu, Eric Cheng, and Paul Hudak. Causal Commutative Arrows. Journal 
of Functional Programming, volume 21, issue 4-5, pp. 467-496. September 2011. 
(Extended journal version of our ICFP09 paper.)