algebraic-graphs

Version 0.7 revision 3 uploaded by snowleopard.

Package meta

Synopsis
A library for algebraic graph construction and transformation
Description

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:

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.

Author
Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard
Bug reports
https://github.com/snowleopard/alga/issues
Category
Algebra, Algorithms, Data Structures, Graphs
Copyright
Andrey Mokhov, 2016-2022
Homepage
https://github.com/snowleopard/alga
Maintainer
Andrey Mokhov <andrey.mokhov@gmail.com>, github: @snowleopard, Alexandre Moine <alexandre@moine.me>, github: @nobrakal
Package URL
n/a
Stability
n/a

Components