-
Notifications
You must be signed in to change notification settings - Fork 69
/
algebraic-graphs.cabal
168 lines (163 loc) · 8.46 KB
/
algebraic-graphs.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
cabal-version: 2.2
name: algebraic-graphs
version: 0.8
synopsis: A library for algebraic graph construction and transformation
license: MIT
license-file: LICENSE
author: Andrey Mokhov <[email protected]>, github: @snowleopard
maintainer: Andrey Mokhov <[email protected]>, github: @snowleopard,
Alexandre Moine <[email protected]>, github: @nobrakal
copyright: Andrey Mokhov, 2016-2024
homepage: https://github.com/snowleopard/alga
bug-reports: https://github.com/snowleopard/alga/issues
category: Algebra, Algorithms, Data Structures, Graphs
build-type: Simple
tested-with: GHC==9.8.2, GHC==9.6.3, GHC==9.4.7, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7
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 main data type for /algebraic graphs/
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph.html#t:Graph Graph>,
as well as associated algorithms. For type-safe representation and
manipulation of /non-empty algebraic graphs/, see
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-NonEmpty.html Algebra.Graph.NonEmpty>.
Furthermore, /algebraic graphs with edge labels/ are implemented in
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Labelled.html Algebra.Graph.Labelled>.
.
The library also provides conventional graph data structures, such as
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-AdjacencyMap.html Algebra.Graph.AdjacencyMap>
along with its various flavours:
.
* adjacency maps specialised to graphs with vertices of type 'Int'
(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-AdjacencyIntMap.html Algebra.Graph.AdjacencyIntMap>),
* non-empty adjacency maps
(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-NonEmpty-AdjacencyMap.html Algebra.Graph.NonEmpty.AdjacencyMap>),
* adjacency maps for undirected bipartite graphs
(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Bipartite-AdjacencyMap.html Algebra.Graph.Bipartite.AdjacencyMap>),
* adjacency maps with edge labels
(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Labelled-AdjacencyMap.html Algebra.Graph.Labelled.AdjacencyMap>),
* acyclic adjacency maps
(<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-Acyclic-AdjacencyMap.html Algebra.Graph.Acyclic.AdjacencyMap>),
.
A large part of the API of algebraic graphs and adjacency maps is available
through the 'Foldable'-like type class
<http://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-ToGraph.html Algebra.Graph.ToGraph>.
.
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 construction and manipulation of graphs.
.
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:
AUTHORS.md
CHANGES.md
README.md
source-repository head
type: git
location: https://github.com/snowleopard/alga.git
common common-settings
build-depends: array >= 0.4 && < 0.6,
base >= 4.12 && < 5,
containers >= 0.5.5.1 && < 0.8,
deepseq >= 1.3.0.1 && < 1.6,
transformers >= 0.4 && < 0.7
default-language: Haskell2010
default-extensions: ConstraintKinds
DeriveFunctor
DeriveGeneric
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
MultiParamTypeClasses
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
other-extensions: CPP
OverloadedStrings
RecordWildCards
ViewPatterns
ghc-options: -Wall
-Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-fno-warn-name-shadowing
-fno-warn-unused-imports
-fspec-constr
library
import: common-settings
hs-source-dirs: src
exposed-modules: Algebra.Graph,
Algebra.Graph.Undirected,
Algebra.Graph.Acyclic.AdjacencyMap,
Algebra.Graph.AdjacencyIntMap,
Algebra.Graph.AdjacencyIntMap.Algorithm,
Algebra.Graph.AdjacencyMap,
Algebra.Graph.AdjacencyMap.Algorithm,
Algebra.Graph.Bipartite.AdjacencyMap,
Algebra.Graph.Bipartite.AdjacencyMap.Algorithm,
Algebra.Graph.Class,
Algebra.Graph.Example.Todo,
Algebra.Graph.Export,
Algebra.Graph.Export.Dot,
Algebra.Graph.HigherKinded.Class,
Algebra.Graph.Internal,
Algebra.Graph.Label,
Algebra.Graph.Labelled,
Algebra.Graph.Labelled.AdjacencyMap,
Algebra.Graph.Labelled.Example.Automaton,
Algebra.Graph.Labelled.Example.Network,
Algebra.Graph.NonEmpty,
Algebra.Graph.NonEmpty.AdjacencyMap,
Algebra.Graph.Relation,
Algebra.Graph.Relation.Preorder,
Algebra.Graph.Relation.Reflexive,
Algebra.Graph.Relation.Symmetric,
Algebra.Graph.Relation.Transitive,
Algebra.Graph.ToGraph,
Data.Graph.Typed
test-suite main
import: common-settings
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.Acyclic.AdjacencyMap,
Algebra.Graph.Test.AdjacencyIntMap,
Algebra.Graph.Test.AdjacencyMap,
Algebra.Graph.Test.Arbitrary,
Algebra.Graph.Test.Bipartite.AdjacencyMap,
Algebra.Graph.Test.Example.Todo
Algebra.Graph.Test.Export,
Algebra.Graph.Test.Generic,
Algebra.Graph.Test.Graph,
Algebra.Graph.Test.Undirected,
Algebra.Graph.Test.Internal,
Algebra.Graph.Test.Label,
Algebra.Graph.Test.Labelled.AdjacencyMap,
Algebra.Graph.Test.Labelled.Graph,
Algebra.Graph.Test.NonEmpty.AdjacencyMap,
Algebra.Graph.Test.NonEmpty.Graph,
Algebra.Graph.Test.Relation,
Algebra.Graph.Test.Relation.Symmetric,
Algebra.Graph.Test.RewriteRules,
Data.Graph.Test.Typed
build-depends: algebraic-graphs,
extra >= 1.4 && < 2,
inspection-testing >= 0.4.2.2 && < 0.6,
QuickCheck >= 2.14 && < 2.16
other-extensions: ConstrainedClassMethods
TemplateHaskell