cabal-version: 2.4
name: algebraic-edge-graphs
version: 0.1.0
synopsis: A library for algebraic edge-graph construction and transformation
license: MIT
license-file: LICENSE
author: Jack Liell-Cock <jackliellcock@gmail.com>
maintainer: Jack Liell-Cock <jackliellcock@gmail.com>
copyright: Jack Liell-Cock, 2025-2026
homepage: https://github.com/jacklc3/algebraic-edge-graphs
bug-reports: https://github.com/jacklc3/algebraic-edge-graphs/issues
category: Algebra, Algorithms, Data Structures, Graphs
build-type: Simple
tested-with: GHC ==9.6.6
, GHC ==9.8.4
, GHC ==9.10.1
, GHC ==9.12.1
description:
A library for algebraic construction and manipulation of edge-indexed graphs
in Haskell. Based on the theory of algebraic edge graphs.
.
The top-level module "EdgeGraph" defines the core data type
'EdgeGraph.EdgeGraph' which is a deep embedding of six graph construction
primitives 'EdgeGraph.empty', 'EdgeGraph.edge', 'EdgeGraph.overlay',
'EdgeGraph.into', 'EdgeGraph.pits' and 'EdgeGraph.tips'. More
conventional graph representations can be found in "EdgeGraph.AdjacencyMap" and
"EdgeGraph.Incidence".
.
The type classes defined in "EdgeGraph.Class" and "EdgeGraph.HigherKinded.Class"
can be used for polymorphic graph construction and manipulation. Also see
"EdgeGraph.Fold" that defines the Boehm-Berarducci encoding of algebraic edge
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:
CHANGELOG.md
README.md
source-repository head
type: git
location: https://github.com/jacklc3/algebraic-edge-graphs.git
library
hs-source-dirs: src
exposed-modules: EdgeGraph,
EdgeGraph.AdjacencyMap,
EdgeGraph.AdjacencyMap.Internal,
EdgeGraph.Class,
EdgeGraph.Fold,
EdgeGraph.HigherKinded.Class,
EdgeGraph.IntAdjacencyMap,
EdgeGraph.IntAdjacencyMap.Internal,
EdgeGraph.Incidence,
EdgeGraph.Incidence.Internal
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
hs-source-dirs: test
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules: Arbitrary,
Testable.Graph,
Testable.AlgebraicGraph,
Testable.AdjacencyGraph,
Testable.Instances,
Test.AdjacencyMap,
Test.Fold,
Test.EdgeGraph,
Test.IntAdjacencyMap,
Test.Incidence
build-depends: algebraic-edge-graphs,
base >= 4.9 && < 5,
containers >= 0.5 && < 0.8,
extra >= 1.5 && < 2,
QuickCheck >= 2.9 && < 3
default-language: Haskell2010
GHC-options: -Wall -fwarn-tabs
default-extensions: FlexibleContexts
GeneralizedNewtypeDeriving
TypeFamilies
ScopedTypeVariables
other-extensions: RankNTypes
ViewPatterns
benchmark bench
hs-source-dirs: bench
type: exitcode-stdio-1.0
main-is: Bench.hs
build-depends: algebraic-edge-graphs,
base >= 4.9 && < 5,
containers >= 0.5 && < 0.8,
criterion >= 1.1 && < 2
default-language: Haskell2010
GHC-options: -O2 -Wall -fwarn-tabs
default-extensions: FlexibleContexts
TypeFamilies
ScopedTypeVariables