
Hi, I've recently started learning Haskell and I'm looking for a library to create and manipulate undirected graphs for a small learning project. Ideally I'd like to be able to: - represent undirected or directed graphs with vertex type a and edge type b - not need to manually maintain mappings between vertex values and vertices assumed to be integers - be able to add and remove vertices and edges by their values with appropriate checks for missing vertices etc - find the connected components of a graph Looking on Hackage I can see some very sophisticated graph libraries including Data.Graph and Data.Graph.Inductive and others, but they all seem to need vertices to be integers or not support changing the graph once constructed. This may well be my ignorance of both graph theory and Haskell but can someone point me to a library that meets my needs or should I extend the learning process and create one myself? Thanks, Stu