# algebraic-graphs: A library for algebraic graph construction and transformation

Alga is a library for algebraic construction and manipulation of graphs in Haskell. See this paper for the motivation behind the library, the underlying theory and implementation details.

The top-level module
Algebra.Graph
defines the main data type for *algebraic graphs*
Graph,
as well as associated algorithms. For type-safe representation and
manipulation of *non-empty algebraic graphs*, see
Algebra.Graph.NonEmpty.
Furthermore, *algebraic graphs with edge labels* are implemented in
Algebra.Graph.Labelled.

The library also provides conventional graph data structures, such as
Algebra.Graph.AdjacencyMap
along with its various flavours: adjacency maps specialised to graphs with
vertices of type `Int`

(Algebra.Graph.AdjacencyIntMap),
non-empty adjacency maps
(Algebra.Graph.NonEmpty.AdjacencyMap),
and adjacency maps with edge labels
(Algebra.Graph.Labelled.AdjacencyMap).
A large part of the API of algebraic graphs and adjacency maps is available
through the `Foldable`

-like type class
Algebra.Graph.ToGraph.

The type classes defined in Algebra.Graph.Class and 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 discussions on the library API.

[Skip to Readme]

Versions [faq] | 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.1.0, 0.1.1, 0.1.1.1, 0.2, 0.3, 0.4, 0.5 |
---|---|

Change log | CHANGES.md |

Dependencies | array (>=0.4 && <0.6), base (>=4.7 && <5), containers (>=0.5.5.1 && <0.8), deepseq (>=1.3.0.1 && <1.5), mtl (>=2.1 && <2.3), transformers (>=0.4 && <0.6) [details] |

License | MIT |

Copyright | Andrey Mokhov, 2016-2019 |

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 |

Category | Algebra, Algorithms, Data Structures, Graphs |

Home page | https://github.com/snowleopard/alga |

Source repo | head: git clone https://github.com/snowleopard/alga.git |

Uploaded | by snowleopard at 2020-02-02T23:48:46Z |

Distributions | Arch:0.5, LTSHaskell:0.3, NixOS:0.5, Stackage:0.4, openSUSE:0.5 |

Downloads | 10192 total (309 in the last 30 days) |

Rating | 2.5 (votes: 6) [estimated by Bayesian average] |

Your Rating | |

Status | Docs available [build log] Last success reported on 2020-02-03 [all 1 reports] |

## Modules

[Index] [Quick Jump]

*Algebra**Data**Graph*

## Downloads

- algebraic-graphs-0.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)