The CCA package

[ Tags: bsd3, development, library, program ] [ Propose Tags ]

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,,,
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 repo head: darcs get
Uploaded Tue Apr 13 04:08:59 UTC 2010 by PaulLiu
Distributions NixOS:
Executables ccap
Downloads 5180 total (85 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for CCA-0.1.3

[back to package description]
A Library and Preprocessor for Causal Commutative Arrows (CCA)

This library implements the CCA normalization described in the paper [1].
It uses Template Haskell as a staged compilation for arrow programs written
in arrow syntax. A modified arrow preprocesor 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 <>, as well as
Eric Cheng <>. All suggestions are welcome.


    Mon Apr 12 EDT 2010: 

        Normalize to loopD instead of loopB, add more test cases, add support
        for GHC 6.12.1, and bump version to 0.1.3.

    Sun Sep 13 EDT 2009: Some cleanup using HLint, bump version to 0.1.2.

Last Modified: Wed Sep 13 EDT 2009

[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