[Haskell-cafe] Graph diagram tools?

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Thu Jun 23 02:38:21 CEST 2011

On 23 June 2011 02:48, Stephen Tetley <stephen.tetley at gmail.com> wrote:
> Or Andy Gill's Dotgen - simple and stable:
> http://hackage.haskell.org/package/dotgen

Within the next month, I should hopefully finally finish the new
version of graphviz.  Various improvements include:

* Using Text rather than String (thus improving performance and
enforcing UTF-8 encoding)

* More user-friendly APIs, especially for Attributes
(Data.GraphViz.Attributes now exports a minimal sub-set of the more
common attributes; the complete list is now available in

* A Dot graph representation with actual graph operations on it

* A Dot graph representation based loosely upon dotgen's monadic
interface (with Andy's blessing) but with the various Attributes being
used rather than (String, String).  I think I'm going to be able to
make it such that you can define a graph using the monadic interface
that will almost look identical to actual Dot code.

* Pure haskell re-implementations of "dot -Tcanon" and tred.

* Improved documentation with examples.

I would like to stress to people considering using other bindings to
Graphviz/Dot (such as dotgen, language-dot, or their own
cobbled-together interface): be very careful about quoting, etc.  I
have spent a _lot_ of time checking how to properly escape different
values and ensuring correctness under the hood (i.e. there is no need
to pre-escape your Text/String values; graphviz will do that for you
when generating the actual Dot code).  This, after all, is the point
of having existing libraries rather than rolling your own each time.
As such, I would greatly appreciate knowing what it is that makes you
want to use a different library (admittedly the graphviz API isn't as
stable as the others, but that's because I keep trying to improve it,
and typically state in the Changelog exactly what has changed).

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list