Portability | portable |
---|---|

Stability | experimental |

Maintainer | bgwines@cs.stanford.edu |

Safe Haskell | None |

A typeclass with default implementation for graphing trees with Haskell GraphViz. It is intended to be extremely straightforward to graph your data type; you only need to define one simple function (example implementation below).

# Documentation

class DAGGraphable g whereSource

A typeclass for tree-like algebraic data types that are able to be graphed.

For these descriptions, assume the following example data type:

data Tree a = Empty | Leaf a | Node a (Tree a) (Tree a)

graph :: (Eq g, Show g, DAGGraphable g) => g -> IO StringSource

Graphs the given `DAGGraphable`

data type. Output is written to a file named "graph-i.dot", where *i* is the successor of the highest *i*-show_node of all existing "graph-i.dot" files in the current directory.You won't need to override this implementation.