packages feed

maxsharing-1.1: maxsharing.cabal

Name:           maxsharing
Version:        1.1
Copyright:      (c) 2013, Jan Rochel
Author:         Jan Rochel
Maintainer:     jan@rochel.info
Homepage:       http://arxiv.org/abs/1401.1460
License:        BSD3
License-file:   LICENSE
Stability:      beta
Build-type:     Custom
Synopsis:       Maximal sharing of terms in the lambda calculus with letrec
Description:    Parses a lambda-letrec term; transforms it into a first-order
                term graph representation; minimises the graph by bisimulation
                collapse; reads back a lambda-letrec term which has the same
                unfolding as the original term but is more (maximally) compact.
                If executable "dot" from graphviz is available, the graphs are
                displayed (tested for Linux). The approach is described in an
                ICFP-paper <http://dx.doi.org/10.1145/2628136.2628148> and an
                extended version thereof <http://arxiv.org/abs/1401.1460>.
Category:       Graphs, Compiler
Cabal-Version:  >= 1.6
Extra-Source-Files: uuagc_options
Data-Files:     examples/*.l

Executable maxsharing
  Build-Depends:
    base < 4.9,
    base-unicode-symbols,
    parsec >= 3.0,
    indentparser,
    containers,
    containers-unicode-symbols,
    mtl,
    uuagc-cabal,
    uuagc,
    HaLeX,
    process,
    boxes,
    fgl
  Extensions: UnicodeSyntax
  Other-Modules:  Lambda Parser Spanning
  Main-Is: MaxSharing.hs