# 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 core data type
Graph,
which is a deep embedding of four graph construction primitives *empty*,
*vertex*, *overlay* and *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. Please consider contributing to the on-going discussions on the library API.

[Skip to Readme]

Versions | 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 |
---|---|

Dependencies | array (>=0.5 && <0.8), base (>=4.9 && <5), containers (>=0.5 && <0.8) [details] |

License | MIT |

Copyright | Andrey Mokhov, 2016-2017 |

Author | Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard |

Maintainer | Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard |

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 Sun Mar 26 23:53:06 UTC 2017 |

Distributions | LTSHaskell:0.2, NixOS:0.2, Stackage:0.2 |

Downloads | 1753 total (79 in the last 30 days) |

Rating | 2.5 (votes: 4) [estimated by rule of succession] |

Your Rating | |

Status | Docs available [build log] Last success reported on 2017-03-26 [all 1 reports] Hackage Matrix CI |

## Modules

[Index]

## Downloads

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