Toggle Main Menu Toggle Search

Open Access padlockePrints

Algebraic Graphs with Class (functional pearl)

Lookup NU author(s): Dr Andrey Mokhov



This is the authors' accepted manuscript of a conference proceedings (inc. abstract) that has been published in its final definitive form by ACM, 2017.

For re-use rights please refer to the publisher's terms and conditions.


The paper presents a minimalistic and elegant approach to workingwith graphs in Haskell. It is built on a rigorousmathematical foundation --- an algebra of graphs --- that allows us to applyequational reasoning for proving the correctness of graph transformationalgorithms. Algebraic graphs let us avoid partial functions typicallycaused by `malformed graphs' that contain an edge referring toa non-existent vertex. This helps to liberate APIs of existing graph librariesfrom partial functions.The algebra of graphs can represent directed, undirected, reflexiveand transitive graphs, as well as hypergraphs, by appropriately choosingthe set of underlying axioms. The flexibility of the approach isdemonstrated by developing a library for constructingand transforming polymorphic graphs.

Publication metadata

Author(s): Mokhov A

Publication type: Conference Proceedings (inc. Abstract)

Publication status: Published

Conference Name: Haskell Symposium 2017

Year of Conference: 2017

Pages: 2-13

Print publication date: 07/09/2017

Acceptance date: 26/06/2017

Date deposited: 02/07/2017

Publisher: ACM


DOI: 10.1145/3122955.3122956

Library holdings: Search Newcastle University Library for this item

Series Title: Proceedings of the 10th ACM SIGPLAN International Haskell Symposium

ISBN: 9781450351829