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), adjacency maps for undirected bipartite graphs (Algebra.Graph.Bipartite.AdjacencyMap), adjacency maps with edge labels (Algebra.Graph.Labelled.AdjacencyMap), acyclic adjacency maps (Algebra.Graph.Acyclic.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.
algebraic-graphs is a tool in the Build Automation category of a tech stack.
No pros listed yet.
No cons listed yet.
What are some alternatives to algebraic-graphs?
A free and open-source package manager designed for the Microsoft development platform. It is also distributed as a Visual Studio extension.
It is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them.
Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. There are no system wide dependencies, no dependencies are shared between different apps, and the dependency tree is flat.
With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel.