packages feed

algebraic-graphs-0.0.1: algebraic-graphs.cabal

name:          algebraic-graphs
version:       0.0.1
synopsis:      A library for algebraic graph construction and transformation
license:       MIT
license-file:  LICENSE
author:        Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard
maintainer:    Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard
copyright:     Andrey Mokhov, 2016-2017
homepage:      https://github.com/snowleopard/alga
category:      Algebra, Algorithms, Data Structures, Graphs
build-type:    Simple
cabal-version: >=1.10
tested-with:   GHC==8.0.2
description:
    A library for algebraic construction and manipulation of graphs in Haskell. See
    <https://github.com/snowleopard/alga-paper this paper> for the motivation behind
    the library, the underlying theory and implementation details.
    .
    The top-level module "Algebra.Graph" defines the core data type 'Algebra.Graph.Graph'
    which is a deep embedding of four graph construction primitives 'Algebra.Graph.empty',
    'Algebra.Graph.vertex', 'Algebra.Graph.overlay' and 'Algebra.Graph.connect'. More
    conventional graph representations can be found in "Algebra.Graph.AdjacencyMap" and
    "Algebra.Graph.Relation".
    .
    The type classes defined in "Algebra.Graph.Class" and "Algebra.Graph.HigherKinded.Class"
    can be used for polymorphic graph construction and manipulation. Also see
    "Algebra.Graph.Fold" that defines the Boehm-Berarducci encoding of algebraic graphs and
    provides additional flexibility for polymorphic graph manipulation.
    .
    This is an experimental library and the API will be unstable until version 1.0.0.

extra-doc-files:
    README.md

source-repository head
    type:     git
    location: https://github.com/snowleopard/alga.git

library
    hs-source-dirs:     src
    exposed-modules:    Algebra.Graph,
                        Algebra.Graph.AdjacencyMap,
                        Algebra.Graph.AdjacencyMap.Internal,
                        Algebra.Graph.Class,
                        Algebra.Graph.Fold,
                        Algebra.Graph.HigherKinded.Class,
                        Algebra.Graph.IntAdjacencyMap,
                        Algebra.Graph.IntAdjacencyMap.Internal,
                        Algebra.Graph.Relation,
                        Algebra.Graph.Relation.Internal,
                        Algebra.Graph.Relation.Preorder,
                        Algebra.Graph.Relation.Reflexive,
                        Algebra.Graph.Relation.Symmetric,
                        Algebra.Graph.Relation.Transitive
    build-depends:      array      >= 0.5 && < 0.8,
                        base       >= 4.9 && < 5,
                        containers >= 0.5 && < 0.8
    default-language:   Haskell2010
    default-extensions: FlexibleContexts
                        GeneralizedNewtypeDeriving
                        ScopedTypeVariables
                        TupleSections
                        TypeFamilies
    other-extensions:   DeriveFoldable
                        DeriveFunctor
                        DeriveTraversable
                        OverloadedStrings
    GHC-options:        -Wall -fwarn-tabs

test-suite test-alga
    hs-source-dirs:     test
    type:               exitcode-stdio-1.0
    main-is:            Main.hs
    other-modules:      Algebra.Graph.Test,
                        Algebra.Graph.Test.AdjacencyMap,
                        Algebra.Graph.Test.Arbitrary,
                        Algebra.Graph.Test.Fold,
                        Algebra.Graph.Test.Graph,
                        Algebra.Graph.Test.IntAdjacencyMap,
                        Algebra.Graph.Test.Relation
    build-depends:      algebraic-graphs,
                        base       >= 4.9,
                        containers >= 0.5,
                        extra      >= 1.5,
                        QuickCheck >= 2.9
    default-language:   Haskell2010
    GHC-options:        -O2 -Wall -fwarn-tabs
    default-extensions: FlexibleContexts
                        GeneralizedNewtypeDeriving
                        TypeFamilies
                        ScopedTypeVariables
    other-extensions:   RankNTypes
                        ViewPatterns

benchmark benchmark-alga
    hs-source-dirs:     bench
    type:               exitcode-stdio-1.0
    main-is:            Bench.hs
    build-depends:      algebraic-graphs,
                        base       >= 4.9,
                        containers >= 0.5,
                        criterion  >= 1.1
    default-language:   Haskell2010
    GHC-options:        -O2 -Wall -fwarn-tabs
    default-extensions: FlexibleContexts
                        TypeFamilies
                        ScopedTypeVariables