name: algebraic-graphs
version: 0.2
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,
Alexandre Moine <alexandre@moine.me>, github: @nobrakal
copyright: Andrey Mokhov, 2016-2018
homepage: https://github.com/snowleopard/alga
category: Algebra, Algorithms, Data Structures, Graphs
build-type: Simple
cabal-version: >=1.18
tested-with: GHC==7.8.4,
GHC==7.10.3,
GHC==8.0.2,
GHC==8.2.2,
GHC==8.4.3,
GHC==8.6.1
stability: experimental
description:
<https://github.com/snowleopard/alga Alga> is 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
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph.html Algebra.Graph>
defines the core data type
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph.html#t:Graph Graph>,
which is a deep embedding of four graph construction primitives /empty/,
/vertex/, /overlay/ and /connect/. To represent non-empty graphs, see
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-NonEmpty.html Algebra.Graph.NonEmpty>.
More conventional graph representations can be found in
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-AdjacencyMap.html Algebra.Graph.AdjacencyMap>
and
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Relation.html Algebra.Graph.Relation>.
.
The type classes defined in
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Class.html Algebra.Graph.Class>
and
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-HigherKinded-Class.html Algebra.Graph.HigherKinded.Class>
can be used for polymorphic graph construction and manipulation. Also see
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Fold.html 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 is expected to remain unstable until version 1.0.0.
Please consider contributing to the on-going
<https://github.com/snowleopard/alga/issues discussions on the library API>.
extra-doc-files:
CHANGES.md
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.Export,
Algebra.Graph.Export.Dot,
Algebra.Graph.Fold,
Algebra.Graph.HigherKinded.Class,
Algebra.Graph.AdjacencyIntMap,
Algebra.Graph.AdjacencyIntMap.Internal,
Algebra.Graph.Internal,
Algebra.Graph.Label,
Algebra.Graph.Labelled,
Algebra.Graph.NonEmpty,
Algebra.Graph.Relation,
Algebra.Graph.Relation.Internal,
Algebra.Graph.Relation.InternalDerived,
Algebra.Graph.Relation.Preorder,
Algebra.Graph.Relation.Reflexive,
Algebra.Graph.Relation.Symmetric,
Algebra.Graph.Relation.Transitive,
Algebra.Graph.ToGraph,
Data.Graph.Typed
build-depends: array >= 0.4 && < 0.6,
base >= 4.7 && < 5,
base-compat >= 0.9.1 && < 0.11,
containers >= 0.5.5.1 && < 0.8,
deepseq >= 1.3.0.1 && < 1.5,
mtl >= 2.1 && < 2.3
if !impl(ghc >= 8.0)
build-depends: semigroups >= 0.18.3 && < 0.18.4
default-language: Haskell2010
default-extensions: FlexibleContexts
GeneralizedNewtypeDeriving
ScopedTypeVariables
TupleSections
TypeFamilies
other-extensions: CPP
DeriveFoldable
DeriveFunctor
DeriveTraversable
OverloadedStrings
RecordWildCards
GHC-options: -Wall
-fno-warn-name-shadowing
if impl(ghc >= 8.0)
GHC-options: -Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
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.API,
Algebra.Graph.Test.AdjacencyMap,
Algebra.Graph.Test.Arbitrary,
Algebra.Graph.Test.Export,
Algebra.Graph.Test.Fold,
Algebra.Graph.Test.Generic,
Algebra.Graph.Test.Graph,
Algebra.Graph.Test.AdjacencyIntMap,
Algebra.Graph.Test.Internal,
Algebra.Graph.Test.NonEmptyGraph,
Algebra.Graph.Test.Relation,
Data.Graph.Test.Typed
build-depends: algebraic-graphs,
array >= 0.4 && < 0.6,
base >= 4.7 && < 5,
base-compat >= 0.9.1 && < 0.11,
base-orphans >= 0.5.4 && < 0.9,
containers >= 0.5.5.1 && < 0.8,
extra >= 1.5 && < 2,
QuickCheck >= 2.9 && < 2.12
if !impl(ghc >= 8.0)
build-depends: semigroups >= 0.18.3 && < 0.18.4
default-language: Haskell2010
GHC-options: -Wall
-fno-warn-name-shadowing
if impl(ghc >= 8.0)
GHC-options: -Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
default-extensions: FlexibleContexts
GeneralizedNewtypeDeriving
TypeFamilies
ScopedTypeVariables
other-extensions: ConstrainedClassMethods
ConstraintKinds
RankNTypes
ViewPatterns